C#重载一个运算符的时候报这种错误怎么解决呢?

 我来答
魔法软糖™
2019-06-11 · TA获得超过837个赞
知道小有建树答主
回答量:822
采纳率:94%
帮助的人:147万
展开全部

这个问题软糖来解答把。

问题解析

  1.  ==和!=这两个运算符依赖于 Equals 和 GetHashCode 这两个方法。
  2.  所以需要重写相等判断和获取哈希值的方法。

解决方案:

输入overri然后按Tab会出现一个菜单,选择会自动生成重写。

public override bool Equals(object obj) {

return base.Equals(obj);    

}

public override int GetHashCode() {

return Index.GetHashCode();

}

注意事项

  1. 尽量使不同的对象生成不同的HashCode

  2. Equals方法一般是判断对象是否为同一个,所以用base的引用相等比较就可以了

  3. 你可以把Equals方法改为判断index是否相等 return this.Index == obj.Index

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式