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

如题所述

这个问题软糖来解答把。

问题解析

     ==和!=这两个运算符依赖于 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

温馨提示:答案为网友推荐,仅供参考
相似回答