通用方法,其中T实现运算符

时间:2012-09-26 14:12:25

标签: c# generics where-clause

  

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

但我不记得语法。

0 个答案:

没有答案