C#重载一个运算符的时候报这种错误怎么解决呢?
1个回答
展开全部
这个问题软糖来解答把。
问题解析:
- ==和!=这两个运算符依赖于 Equals 和 GetHashCode 这两个方法。
- 所以需要重写相等判断和获取哈希值的方法。
解决方案:
输入overri然后按Tab会出现一个菜单,选择会自动生成重写。
public override bool Equals(object obj) {
return base.Equals(obj);
}
public override int GetHashCode() {
return Index.GetHashCode();
}
注意事项:
尽量使不同的对象生成不同的HashCode
Equals方法一般是判断对象是否为同一个,所以用base的引用相等比较就可以了
你可以把Equals方法改为判断index是否相等 return this.Index == obj.Index
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询