可能重复:
Solution for overloaded operator constraint in .NET generics
我有方法
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;
}
但我不记得语法。