0

可能重复:
.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;
    }

但我不记得语法。

4

0 回答 0