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

C# UInt32.GetHashCode() 메서드 완벽 가이드: 예제 코드로 배우기

C#에서 UInt32.GetHashCode() 메서드는 현재 UInt32 인스턴스에 대한 해시 코드(HashCode)를 반환하는 데 사용됩니다. 해시 코드는 해시 테이블이나 딕셔너리(Dictionary) 같은 해시 기반 컬렉션에서 객체를 빠르게 조회할 때 활용되는 정수 값입니다.

구문(Syntax)

UInt32.GetHashCode() 메서드의 기본 구문은 다음과 같습니다.

public override int GetHashCode ();

이 메서드는 매개변수를 받지 않으며, 현재 부호 없는 32비트 정수 값에 해당하는 int 형식의 해시 코드를 반환합니다.

예제 1

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

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

출력 결과

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

HashCode for val1 = 100
HashCode for val2 = 0

여기서 UInt16.MinValue는 0을 나타내므로, val2의 해시 코드 역시 0이 반환된 것을 확인할 수 있습니다.

예제 2

이번에는 다른 값들을 사용하여 UInt32.GetHashCode() 메서드를 살펴보겠습니다.

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

출력 결과

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

HashCode for val1 = 50
HashCode for val2 = 65535

UInt16.MaxValue는 65535를 나타내며, 해당 값의 해시 코드도 동일하게 65535가 반환됩니다.

정리

UInt32 타입의 경우 GetHashCode() 메서드는 해당 숫자 값 자체를 해시 코드로 반환합니다. 즉, 값이 같으면 해시 코드도 항상 같다는 특징이 있으며, 이는 값 형식(value type)의 일반적인 동작 방식입니다. 이러한 특성 덕분에 UInt32 값을 해시 테이블의 키로 사용할 때 안정적이고 예측 가능한 성능을 기대할 수 있습니다.