【问题标题】:Overloading operators on types I don't own [duplicate]在我不拥有的类型上重载运算符[重复]
【发布时间】:2014-01-09 10:41:33
【问题描述】:

是否可以在 C# 中覆盖我无法控制的类型的运算符?例如。我试图覆盖数组的添加运算符:

public static double[] operator +(double[] a, double[] b)
{
...
}

但它抱怨At least one parameter should be <enclosing type>。在 C++ 中,只需创建一个函数...

【问题讨论】:

    标签: c# .net operator-overloading


    【解决方案1】:

    由于 double[] 是一种内置类型,您无法向其添加运算符,因此您可以创建一个包装类来执行此操作:

    例如(来自 wudzik 的链接):

    public class Foo
    {
        double[] x;
    
        // Legal
        public static double[] operator+(double[] x, Foo y);
    

    【讨论】:

      猜你喜欢
      • 2018-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      • 2019-10-08
      • 2015-05-23
      • 2015-11-19
      相关资源
      最近更新 更多