효과적인 개체 동등성을 위해 Equals() 및 GetHashCode() 재정의
객체 평등을 추구하는 과정에서 Equals() 및 GetHashCode( ) 방법이 중추적인 역할을 합니다. 사용자 정의 클래스의 경우 의미 있는 비교 및 해싱 메커니즘을 설정하려면 이러한 메서드를 재정의해야 합니다. 이 기사에서는 RecommendationDTO 클래스의 컨텍스트에서 이러한 메서드를 구현하는 올바른 접근 방식을 조명하여 LINQ Except() 메서드와 원활하게 통합할 수 있도록 합니다.
Equals() 재정의
GetHashCode() 재정의
샘플 구현
다음은 향상된 기능입니다. RecommendationDTO에 대한 Equals() 및 GetHashCode() 메서드 구현 클래스:
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(); }
이러한 방식으로 Equals() 및 GetHashCode()를 구현하면 이제 RecommendationDTO 클래스를 LINQ Except() 메서드와 함께 효과적으로 사용할 수 있어 동일한 의미 있는 속성을 가진 개체가 처리되도록 할 수 있습니다. 뚜렷하게.
위 내용은 C#에서 효과적인 개체 비교를 위해 Equals() 및 GetHashCode()를 올바르게 재정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!