두 개의 uint 값을 기반으로 Equals를 재정의 한 클래스가 있습니다. Equals를 재정의 했으므로 GetHashCode를 재정의해야합니다.GetHashCode()를 재정의하기 위해 두 uint를 int로 결합하는 가장 좋은 방법은 무엇입니까?
하나의 단위 값은 절대 중복이 없어야하는 ID를 나타냅니다. 반드시 자동 증가 int 값은 아니지만 대부분의 경우에 있어야합니다. 두 번째 uint 값은 객체의 유형 필드를 나타냅니다.
ID 필드 만 사용하면 충분합니다. 그러나 어떤 경우에는 약간 제한적일 수 있으므로 ID와 유형을 결합해야했습니다.
두 개의 숫자를 더한 다음 XOR을 사용하여 상위 비트와 하위 비트를 결합하는 방법을 생각했습니다.
다른 아이디어?
는'UINT의 ID' 필드가 진정으로'uint'의 전체 범위를 점유 할 수 있습니까? – Ani
우리는 그것을 허용해야합니다. – uriDium
* 그러나 경우에 따라 조금 제한 될 수 있습니다 * - ID 필드 만 사용하면 너무 제한적인 경우에 대해 좀 더 설명 할 수 있습니까? –