在C#中是否可以覆盖我无法控制的类型的运算符?例如。我试图覆盖数组的add运算符:
public static double[] operator +(double[] a, double[] b)
{
...
}
但它抱怨At least one parameter should be <enclosing type>
。在C ++中,只需要创建一个函数......
答案 0 :(得分:1)
由于double []是内置类型而您无法向其添加运算符,因此您可以创建一个包装类来执行此操作:
E.g(来自wudzik的链接):
public class Foo
{
double[] x;
// Legal
public static double[] operator+(double[] x, Foo y);