C#에서 현재 Decimal 인스턴스의 해시 코드를 가져오려면 GetHashCode() 메서드를 사용하면 됩니다. 이 메서드는 해당 값에 대한 해시 코드를 나타내는 32비트 정수를 반환하며, 해시 테이블(Hashtable)이나 딕셔너리(Dictionary)와 같은 해시 기반 컬렉션에서 빠른 검색 성능을 제공하기 위해 주로 활용됩니다.
예제 1: 기본 Decimal 값의 해시 코드 구하기
다음은 특정 Decimal 값의 해시 코드를 구하는 예제입니다.
using System;
public class Demo {
public static void Main(){
Decimal val = 135269.38193M;
Console.WriteLine("Decimal Value = {0}", val);
Console.WriteLine("HashCode = {0}", val.GetHashCode());
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Decimal Value = 135269.38193 HashCode = 1328665595
예제 2: Decimal.MaxValue의 해시 코드 구하기
이번에는 Decimal 타입이 가질 수 있는 최대값인 Decimal.MaxValue에 대해 해시 코드를 구해 보겠습니다.
using System;
public class Demo {
public static void Main(){
Decimal val = Decimal.MaxValue;
Console.WriteLine("Decimal Value = {0}", val);
Console.WriteLine("HashCode = {0}", val.GetHashCode());
}
}출력 결과
실행 결과는 다음과 같습니다.
Decimal Value = 79228162514264337593543950335 HashCode = 1173356544
정리 및 주의 사항
GetHashCode() 메서드는 동일한 Decimal 값에 대해서는 항상 동일한 해시 코드를 반환한다는 점이 중요합니다. 하지만 서로 다른 두 값이 우연히 같은 해시 코드를 가질 수도 있으므로, 해시 코드를 값의 동등성 비교 목적으로 사용하는 것은 피해야 합니다. 해시 코드는 어디까지나 해시 기반 컬렉션에서의 빠른 조회를 위한 보조 수단으로 활용하는 것이 바람직합니다.