繁体   English   中英

重写平等运算符

[英]Overriding Equality Operators

我已经实现了一个重载==!=运算符的类。

这似乎工作正常; 但是,我得到警告'type' defines operator == or operator != but does not override Object.Equals(object o)

好的,所以我实施了Equals。 但现在我得到警告'type' defines operator == or operator != but does not override Object.GetHashCode()

这会在某个时候结束吗? 或者我是否因为我想要超载==!=而徘徊在一个永无止境的需求线索中?

这会在某个时候结束吗?

是的,一旦你实现了GetHashCode它就会结束。 Eric Lippert博客中发表了关于其重要性的博文 我能做的就是建议你阅读并信任他:-)

是的,它将在您重写GetHashCode时结束。

在实现相等运算符以及Equals ,程序员有责任提供实现来为该类型提供自定义哈希代码。

有关详细信息,请参阅此MSDN参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM