栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

C#中泛型类的算术运算符重载

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#中泛型类的算术运算符重载

我认为您能够做的最好的事情就是将其

IConvertible
用作约束并执行以下操作:

 public static operator T +(T x, T y)    where T: IConvertible{    var type = typeof(T);    if (type == typeof(String) ||        type == typeof(DateTime)) throw new ArgumentException(String.Format("The type {0} is not supported", type.FullName), "T");    try { return (T)(Object)(x.ToDouble(NumberFormatInfo.CurrentInfo) + y.ToDouble(NumberFormatInfo.CurrentInfo)); }    catch(Exception ex) { throw new ApplicationException("The operation failed.", ex); }}

但这不会阻止某人传递String或DateTime,因此您可能需要进行一些手动检查-但是IConvertible应该使您足够接近,并允许您执行操作。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/373018.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号