本文主要給自己看,內容太多,懶得寫,直接附上參考博客。
參考一: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()方法進行比較。