public class Calculer<T> where T:struct //已经约束为值类型了 { public T Add(T x, T y) { return x + y; //是否可以这么实现?C# 就编译报错 运算符“+”无法应用于“T”和“T”类型的操作数 } }
你这里的约束只是针对T这个类型必须是Struct类型,而你的Add方法操作的是两个结构相加,结构是属于值类型,但不是CLR里的基元类型,不能重载"+"操作符,同样的class 也是不能 做相加操作,只有基元类型才可能重载"+"操作符进行相加操作
哦,谢谢,那我要实现一个类似的泛型函数,该怎么实现呢!
@渴望飞翔: http://www.cnblogs.com/JimmyZhang/archive/2008/12/17/1356727.html
参考下子阳兄的文章,写得很细很全面
@Zery: 好的!!