簡體   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