实现某些运算符的对象的.NET接口/约束

时间:2013-02-21 05:39:41

标签: c# .net generics operators operator-overloading

我正在制作一个通用方法,并且想知道是否有某种方法可以向泛型T添加约束,这样T就有了某个运算符,比如+,+ =, - , - =等。

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

生成以下错误文本:

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

我在谷歌/ SO上搜索了一段时间,却找不到任何相关内容。

1 个答案:

答案 0 :(得分:1)

我认为这不可能做到

你可以通过以下方式减少幻想:

interface IAddable { void Add(object item); }
...
public void TestAdd<T>(T t1, T t2) where T : IAddable
{
   return t1.Add(t2);
}