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

예제로 배우는 C#의 UInt64.GetHashCode() 메서드

C#의 UInt64.GetHashCode() 메서드는 현재 UInt64 인스턴스에 대한 해시 코드(HashCode)를 가져오는 데 사용됩니다. 이 메서드는 주로 해시 테이블과 같은 자료구조에서 값을 빠르게 조회할 때 활용되며, 동일한 값에 대해서는 항상 동일한 해시 코드가 반환됩니다.

구문

기본 구문은 다음과 같습니다.

public override int GetHashCode ();

매개변수는 받지 않으며, 현재 UInt64 인스턴스의 값을 기반으로 생성된 int 형식의 해시 코드를 반환합니다.

예제 1

다음은 UInt64.GetHashCode() 메서드를 구현한 첫 번째 예제입니다.

using System;
public class Demo {
   public static void Main(){
      ulong val1 = 8768768;
      ulong val2 = UInt64.MinValue;
      Console.WriteLine("HashCode for val1 = "+val1.GetHashCode());
      Console.WriteLine("HashCode for val2 = "+val2.GetHashCode());
   }
}

출력 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

HashCode for val1 = 8768768
HashCode for val2 = 0

val2는 UInt64.MinValue, 즉 0으로 초기화되었기 때문에 해시 코드 역시 0이 반환되는 것을 확인할 수 있습니다.

예제 2

이번에는 UInt64.MaxValue를 사용한 또 다른 예제를 살펴보겠습니다.

using System;
public class Demo {
   public static void Main(){
      ulong val1 = 89879878;
      ulong val2 = UInt64.MaxValue;
      Console.WriteLine("HashCode for val1 = "+val1.GetHashCode());
      Console.WriteLine("HashCode for val2 = "+val2.GetHashCode());
   }
}

출력 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

HashCode for val1 = 89879878
HashCode for val2 = 0

두 예제에서 볼 수 있듯이, UInt64.GetHashCode() 메서드는 인스턴스가 가진 숫자 값을 기준으로 해시 코드를 계산합니다. 일반적인 값은 그대로 해시 코드로 반환되지만, 최솟값(MinValue)과 최댓값(MaxValue)처럼 특정 경계 값에서는 내부 해시 알고리즘에 따라 다른 결과가 나올 수 있다는 점도 참고하면 좋습니다.