可能重复:
.NET 泛型中重载运算符约束的解决方案
我有方法
public static T Add<T>(T x, T y)
{
return x + y;
}
而且我显然会收到编译错误,因为类型 T 可能不支持运算符 + 。例如,如果我在哪里调用该方法:
Add<MyCar>(car1, car2);
无法调用该方法,因为 MyCar 类没有+
运算符的定义。
但是将该方法称为:
Add<Int32>(1,2);
所以我记得我很久以前读过,我必须在方法上放置一个 where 子句才能编译它。有点像:
public static T Add<T>(T x, T y) where T: "implements + operator"
{
return x + y;
}
但我不记得语法。