반응형 재정의1 C# Equals()과 GetHashCode()를 함께 재정의 해야하는 이유 우리가 맞이하는 상황 프로그래밍을 하다보면 하나 이상의 필드를 Key값으로 설정하여 비교하게 되는 경우가 생기게 됩니다. 그리고 평소처럼 분명 같은 키값을 가진 객체를 ContainsKey() 함수로 비교하면 일치하지 않는다고 나올겁니다. hash 값을 사용하는 Collection(HashTable, Dictionary, ConcurrentDictionary)에서 ContainsKey로 실행하면 우선 GetHashCode() 메서드를 비교하고 그 다음에 Equals() 메서드를 실행합니다. 아무리 Equals() 메서드를 열심히 변경해도 그 앞쪽에서 비교가 일어나서 메서드가 실행되지 않습니다. 이 문제를 해결하기 위하여 하나 이상의 필드를 Key값으로 비교하기 위해서는 해당 클래스의 Equals 함수와 .. 2023. 3. 23. 이전 1 다음