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)처럼 특정 경계 값에서는 내부 해시 알고리즘에 따라 다른 결과가 나올 수 있다는 점도 참고하면 좋습니다.