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

C#에서 UInt64 인스턴스의 해시 코드(HashCode) 구하는 방법

C#에서 UInt64(ulong) 인스턴스의 해시 코드를 구하려면 GetHashCode() 메서드를 사용합니다. 이 메서드는 현재 값에 해당하는 정수형 해시 코드를 반환하며, 해시 테이블이나 딕셔너리 같은 자료구조에서 빠른 검색을 위해 활용됩니다.

기본 사용 예제

다음은 일반적인 ulong 값과 UInt64.MinValue의 해시 코드를 구하는 예제입니다.

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

실행 결과

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

위 결과를 보면 val1의 해시 코드가 원래 값과 동일하게 출력되었습니다. 이는 작은 정수 값의 경우 값 자체가 곧 해시 코드로 반환되기 때문입니다. 반면 UInt64.MinValue는 0이므로 해시 코드도 0이 됩니다.

다른 예제

이번에는 더 큰 값과 UInt64.MaxValue를 사용해 보겠습니다.

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

실행 결과

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

정리

  • GetHashCode() 메서드는 System.UInt64 구조체에 포함된 인스턴스 메서드로, 별도의 매개변수 없이 호출할 수 있습니다.
  • 반환 타입은 int이며, ulong 값이 int 범위를 초과하는 경우 내부적으로 적절한 해시 변환이 수행됩니다.
  • 동일한 값에 대해서는 항상 동일한 해시 코드가 반환되므로, 해시 기반 컬렉션(Dictionary<TKey, TValue>, HashSet<T> 등)에서 안정적으로 사용할 수 있습니다.
  • 해시 코드는 고유 식별자가 아니므로 두 객체가 같은지 판단하는 용도로는 Equals()와 함께 사용해야 합니다.