如何在C#中使用重载算术运算符创建接口?

如何在C#中使用重载算术运算符创建接口?,c#,generics,C#,Generics,要像这样使用它: public class myClass <T> where T : IArithmetic //... public myFunction(T A, T B){ //... X = A + B; //... } 公共类myClass,其中T:IArithmetic //... 公共myFunction(T A、T B){ //... X=A+B; //... } 因此,我必须以某种方式重载T类的+运算符。无法创建此限制,因为运算符方法是

要像这样使用它:

public class myClass <T> where T : IArithmetic
//...
public myFunction(T A, T B){
    //...
    X = A + B;
    //...
}
公共类myClass,其中T:IArithmetic
//...
公共myFunction(T A、T B){
//...
X=A+B;
//...
}

因此,我必须以某种方式重载T类的+运算符。

无法创建此限制,因为运算符方法是静态的,因此它们不属于实例。
如果T类型不支持所需的操作,您可以使用reflxion执行一些运行时检查,并抛出NotSupported Exction。

这不可能为实现运算符创建接口

根据标准:

13.2接口成员

接口的成员必须是方法、属性、事件或索引器。一 接口不能包含常量、字段、运算符、实例 构造函数、析构函数或类型,接口也不能包含 任何类型的静态成员


Thx,James Gunt,reading,不能用泛型。。。这是一个令人沮丧的问题。我一直希望.NET提供这种功能。