Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 UInt32 인스턴스의 해시 코드(HashCode) 가져오는 방법

C#에서 GetHashCode() 메서드를 사용하면 현재 UInt32 인스턴스에 대한 해시 코드를 손쉽게 얻을 수 있습니다. 이 메서드는 해당 값의 정수 해시 표현을 반환하며, 해시 테이블이나 딕셔너리 같은 자료구조에서 객체를 빠르게 검색할 때 활용됩니다.

UInt32 형식의 경우, 해시 코드는 일반적으로 값 자체와 동일한 숫자로 반환됩니다. 아래 예제를 통해 실제 동작을 확인해 보겠습니다.

예제 1

using System;
public class Demo {
   public static void Main() {
      uint val1 = 100;
      uint val2 = UInt16.MinValue;
      Console.WriteLine("val1의 해시 코드 = " + val1.GetHashCode());
      Console.WriteLine("val2의 해시 코드 = " + val2.GetHashCode());
   }
}

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과가 나타납니다.

val1의 해시 코드 = 100
val2의 해시 코드 = 0

설명: val1에는 100이 저장되어 있으므로 해시 코드도 100이 반환되었고, val2에는 UInt16.MinValue(즉, 0)가 할당되어 해시 코드가 0으로 출력된 것을 확인할 수 있습니다.

예제 2

이번에는 다른 값을 사용해 보겠습니다.

using System;
public class Demo {
   public static void Main() {
      uint val1 = 50;
      uint val2 = UInt16.MaxValue;
      Console.WriteLine("val1의 해시 코드 = " + val1.GetHashCode());
      Console.WriteLine("val2의 해시 코드 = " + val2.GetHashCode());
   }
}

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과가 나타납니다.

val1의 해시 코드 = 50
val2의 해시 코드 = 65535

설명: val2에 UInt16.MaxValue(65,535)가 할당되었기 때문에 해시 코드 역시 65535로 반환됩니다.

정리

UInt32 값의 해시 코드는 대부분 원래 숫자 값과 동일하게 반환됩니다. GetHashCode() 메서드는 매개변수 없이 호출하며, int 타입의 해시 코드를 반환한다는 점도 기억해 두면 좋습니다. 해시 기반 컬렉션(HashSet, Dictionary 등)에서 값 타입을 효율적으로 다루고자 할 때 유용하게 사용할 수 있습니다.