C# 泛型如何转换成特定类型,不使用装箱拆箱的前提下?
想写一个不区分数据类型的List<T>中元素*3.14的类,T只能是int,uint,float几种类型,自己写了代码但是编译不通过(我不太懂C#的泛型),请教高手,该如...
想写一个不区分数据类型的List<T>中元素*3.14的类,T只能是int,uint,float几种类型,自己写了代码但是编译不通过(我不太懂C#的泛型),请教高手,该如何编写(注意:对性能要求稍高,尽量不要装箱拆箱),谢谢~~~
这里提供一个我自己的思路,同求更好的思路:
MyInt继承int,MyFloat继承float,并且MyInt和MyFloat同时继承INum接口,接口中实现重载运算符"*"(不知道会不会跟原来的*冲突啊,冲突就换成方法),定义Num<T>时加上约束where T : INum
源代码:
public class Num<T> : List<T>
{
public string getFirstValue()
{
return ((double)this[0] * 3.14).ToString();
}
} 展开
这里提供一个我自己的思路,同求更好的思路:
MyInt继承int,MyFloat继承float,并且MyInt和MyFloat同时继承INum接口,接口中实现重载运算符"*"(不知道会不会跟原来的*冲突啊,冲突就换成方法),定义Num<T>时加上约束where T : INum
源代码:
public class Num<T> : List<T>
{
public string getFirstValue()
{
return ((double)this[0] * 3.14).ToString();
}
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询