【问题标题】:Is there a way to call base method for overloaded operators? c#有没有办法为重载运算符调用基本方法? C#
【发布时间】:2014-05-31 10:28:48
【问题描述】:
 class x : y
{
   public static bool x operator >(x i1, x i2)
   {
          // **** 
   }
}

是否可以从 **** 中的 y 类中调用 >?如果有,怎么做?

【问题讨论】:

  • **** 表示代码中的****。 y 是自然数,x 是整数,都保存为字符串...例如,要使用乘法,我会将没有信号的两个数字都发送到自然乘法,而信号将是新类的额外代码
  • 您确实看到了我之前对您之前的问题的评论,其中我指出 Integer 不是 Natural 的正确子类,不是吗?

标签: c# inheritance overloading operator-keyword base


【解决方案1】:

Upcast xy 然后你应该可以调用 y 的实现。

class x : y
{
   public static bool x operator >(x i1, x i2)
   {
        bool greater = (y)i1 > (y)i2;
        return whatever;
   }
}

【讨论】:

  • @vmp 如果基类是 naturals,而派生类是整数,那么当整数是负数时会发生什么? naturals 类不能有逻辑来比较否定的 naturals,因为没有这样的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-28
  • 1970-01-01
  • 1970-01-01
  • 2020-11-30
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
相关资源
最近更新 更多