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();
}
}
展开
 我来答
龙的猫
2015-04-17 · TA获得超过447个赞
知道小有建树答主
回答量:562
采纳率:73%
帮助的人:269万
展开全部
is double
XX as double
用as 运算符转换
更多追问追答
追问

貌似不行啊.

追答
有2种方式 1你的范型类型声明为double?的加个问好。第二用type转换
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式