[深入學習C#]——IEqualityComparer中GetHashCode的作用

本文主要給自己看,內容太多,懶得寫,直接附上參考博客。
參考一:C#——詳析GetHashCode方法
參考二:.NET(C#):GetHashCode 的作用
參考三:What’s the role of GetHashCode in the IEqualityComparer in .NET?

總結: 實現IEqualityCompare<T>接口的時候,需要實現Equals()和GetHashCode()兩個方法。實現Equals()方法之後,最好把GetHashCode()方法也實現一下,否則很有可能會出現程序達不到我們想要的效果的情況。

原因: IEqualityComparer<T>接口的實現類主要用在Linq.Distinct<T>()方法中。當程序運行比較的時候,會先行運行GetHashCode()方法比較兩個obj是否同一個引用,如果不是同一個引用,再運行Equals()方法進行比較。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章