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

C# Decimal.GetHashCode() 메서드 완벽 가이드 – 예제 코드와 실행 결과

C#의 Decimal.GetHashCode() 메서드는 현재 Decimal 인스턴스에 대한 해시 코드(hash code)를 반환하는 데 사용됩니다. 해시 코드는 해시 테이블과 같은 해시 기반 컬렉션에서 객체를 빠르게 조회하거나 비교할 때 활용되는 정수 값입니다.

구문(Syntax)

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

public override int GetHashCode();

이 메서드는 매개변수를 받지 않으며, 현재 인스턴스의 해시 코드를 나타내는 int 타입의 값을 반환합니다.

예제 1

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

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 타입이 표현할 수 있는 최댓값)를 사용하여 GetHashCode() 메서드를 구현해 보겠습니다.

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

정리

Decimal.GetHashCode() 메서드는 Decimal 값에 대해 고유한 해시 코드를 생성하며, 두 예제에서 확인할 수 있듯이 값의 크기나 범위와 관계없이 항상 int 범위의 정수를 반환합니다. 단, 서로 다른 Decimal 값이 동일한 해시 코드를 가질 수도 있으므로, 해시 코드만으로 두 값의 동등성을 판단해서는 안 되며 반드시 Equals() 메서드와 함께 사용해야 합니다.