加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#运算符重载==

发布时间:2020-12-15 23:47:54 所属栏目:百科 来源:网络整理
导读:我试图重载==运算符,但我有以下错误: Overloadable unary operator expected 这是我的代码 public bool operator == (MyClass nm1) { return true; } public bool operator != (MyClass m2) { return true; } 我跟着msdn note但仍然得到同样的错误 解决方法
我试图重载==运算符,但我有以下错误:

Overloadable unary operator expected

这是我的代码

public bool operator == (MyClass nm1)
  {
       return true;
  }

  public bool operator != (MyClass m2)
  {
       return true;
  }

我跟着msdn note但仍然得到同样的错误

解决方法

当你重载operator ==时,你应该在一个静态方法中执行它,该方法将两个实例作为参数:

public static bool operator == (MyClass leftSide,MyClass rightSide) {
     return true;
}

public static bool operator != (MyClass leftSide,MyClass rightSide) {
     return !(leftSide == rightSide);
}

静态上下文使得运算符的代码感觉更“对称”,因为执行比较的代码不属于左实例或右实例.

另外,静态使得无法“虚拟化”运算符(你仍然可以通过调用虚函数在实现中执行它,但是你必须明确地执行它).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读