如何正确重写相等逻辑并保留数据绑定功能

How to properly override equality logic and preserve data binding capabilities

提问人:Mauro Ganswer 提问时间:5/4/2016 最后编辑:CommunityMauro Ganswer 更新时间:5/4/2016 访问量:88

问:

我想提供有关如何正确实现满足以下条件的类的参考:

  1. 实现依赖于其内容的平等逻辑, 即它的领域
  2. 经验证可用于数据绑定

为了满足第 1 点,我习惯于实现 ,以相应地覆盖 Object 的 和 和运算符。覆盖 Object's and 也很重要,例如 here 和 hereIEquatable<T>EqualsGetHashCode==!=EqualsGetHashCode

但是,可以根据类的字段返回不同的值,我最近发现,对于第 2 点,您需要永远不要更改 WinForms 中的正确数据绑定。GetHashCodeGetHashCode

因此,似乎我无法同时重写运算符以检查类内容是否相等,也无法绑定到类属性。实现这样一个类的正确方法是什么,同时认为其他用户也会访问它?==

C# WinForms 数据绑定 相等性 getHashCode

评论

0赞 InBetween 5/4/2016
使其不可变。

答: 暂无答案