3

我正在制作一个泛型方法,想知道是否有某种方法可以向泛型类型添加约束T,例如T具有特定运算符,如 +、+=、-、-= 等。

public void TestAdd<T>(T t1, T t2)
{
    return t1 + t2;
}

产生以下错误文本:

Operator '+' cannot be applied to operands of type 'T' and 'T'

我在 Google/SO 上搜索了一段时间,并没有真正找到任何相关的东西。

4

1 回答 1

1

我认为这是做不到的

您可以通过以下方式减少花哨:

interface IAddable { void Add(object item); }
...
public void TestAdd<T>(T t1, T t2) where T : IAddable
{
   return t1.Add(t2);
}
于 2013-02-21T05:44:42.347 回答