重寫Equals() 和GetHashCode() 以獲得有效的物件等價
在追求物件相等性時,Equals()和GetHashCode() )方法發揮關鍵作用。對於自訂類,有必要重寫這些方法以建立有意義的比較和哈希機制。本文闡明了在RecommendationDTO 類別的上下文中實現這些方法的正確方法,使其能夠與 LINQ except() 方法無縫整合。
重寫 Equals()
重寫GetHashCode()
範例實作
這是一個增強的實作RecommendationDTO的Equals()和GetHashCode()方法class:
public override bool Equals(object obj) { var item = obj as RecommendationDTO; if (item == null || ReferenceId == Guid.Empty || item.ReferenceId == Guid.Empty) { return false; } return this.RecommendationId.Equals(item.RecommendationId); } public override int GetHashCode() { if (ReferenceId == Guid.Empty) { throw new InvalidOperationException("ReferenceId cannot be Guid.Empty when calculating hash code."); } return this.RecommendationId.GetHashCode(); }
以上是如何在 C# 中正確重寫 Equals() 和 GetHashCode() 進行有效的物件比較?的詳細內容。更多資訊請關注PHP中文網其他相關文章!