C#은 equals 및 gethashcode가있는 Java와 같은 문제가 있습니까?C#은 equals와 gethashcode()가있는 자바와 같은 문제가 있습니까?
문제와 같은 : 당신은 ... 당신이 조금 애매있어 이후에 대해
을 이야기하지만하고 발행하는 http://onjava.com/pub/a/onjava/2006/09/13/dont-let-hibernate-steal-your-identity.html
C#은 equals 및 gethashcode가있는 Java와 같은 문제가 있습니까?C#은 equals와 gethashcode()가있는 자바와 같은 문제가 있습니까?
문제와 같은 : 당신은 ... 당신이 조금 애매있어 이후에 대해
을 이야기하지만하고 발행하는 http://onjava.com/pub/a/onjava/2006/09/13/dont-let-hibernate-steal-your-identity.html
확실하지 당신은 당신이 (당신이 '돈할지이
것을 의미하는 경우 컴파일러 경고 또는 코드에서의 예기치 않은 동작)가
GetHashCode
을 재정의 할 때
Equals
을 무시한 다음 예.
상속을 정의 할 때 동등성을 정의하는 것이 어렵다는 의미라면 그렇습니다.
그러나 .NET에는 Dictionary<TKey, TValue>
과 같은 컨테이너의 경우 같음 및 해시에 자주 사용되는 IEqualityComparer<T>
인터페이스가 있습니다. 평등/해싱이 필요한 프레임 워크의 거의 모든 항목은 IEqualityComparer<T>
으로 동작을 지정할 수 있으므로 유형 자체에서 제공하는 양식이 사용자의 필요에 부적합한 경우 원하는 평등 개념을 표현할 수 있습니다.
좀 더 노골적으로 표현하고 싶을 수도 있습니다. 어떤 쟁점이 있습니까? –
문제가 무엇인지에 따라 다릅니다. –
Java의 equals 및 getHashCode의 문제점은 무엇입니까? – Shuo