我最近遇到过这种情况,到目前为止,我一直在愉快地重写等于运算符(==)和/或Equals方法,以查看两个引用类型是否实际包含相同的数据(即两个看起来相同的不同实例)。
我一直在使用它,因为我已经进行了更多的自动化测试(比较参考/预期数据与返回的数据)。
在查看MSDN中的一些编码标准指南时,我遇到了一篇建议反对它的文章。现在我理解为什么文章说这个(因为它们不是同一个实例)但它没有回答这个问题:
比较两种参考类型的最佳方法是什么?
我们应该实施IComparable吗?(我还看到提到这应该仅为值类型保留)。
有一些我不知道的界面吗?
我们应该自己动手吗?!
非常感谢^ _ ^
看起来我错误地阅读了一些文档(这是漫长的一天)并且压倒Equals可能是要走的路。
如果要实现引用类型,则应考虑在引用类型上覆盖Equals方法(如果类型看起来像基本类型,如Point,String,BigNumber等)。大多数引用类型不应重载等于运算符,即使它们重写等于。但是,如果要实现旨在具有值语义的引用类型(例如复数类型),则应覆盖相等运算符。
手掌心
相关分类