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

C# Char.GetHashCode() 메서드 완벽 정리: 예제 코드로 배우는 해시 코드

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

구문(Syntax)

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

public override int GetHashCode ();

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

예제 1: 문자 'H'의 해시 코드 확인하기

다음 예제는 Char.GetHashCode() 메서드를 실제로 구현하여 문자 'H'의 해시 코드를 출력하고, Equals() 메서드로 다른 문자와 비교한 결과를 보여줍니다.

using System;
public class Demo {
   public static void Main(){
      char val = 'H';
      bool res;
      Console.WriteLine("Hashcode for val = "+val.GetHashCode());
      res = val.Equals('d');
      Console.WriteLine("Return Value = "+res);
   }
}

출력 결과

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

Hashcode for val = 4718664
Return Value = False

문자 'H'의 해시 코드는 4718664이며, 'H'와 'd'는 서로 다른 문자이므로 Equals() 비교 결과는 False입니다.

예제 2: 동일한 문자 비교하기

이번에는 문자 'm'을 대상으로 해시 코드를 확인하고, 같은 문자 'm'과 비교해 보겠습니다.

using System;
public class Demo {
   public static void Main(){
      char val = 'm';
      bool res;
      Console.WriteLine("Hashcode for val = "+val.GetHashCode());
      res = val.Equals('m');
      Console.WriteLine("Return Value = "+res);
   }
}

출력 결과

실행 결과는 다음과 같습니다.

Hashcode for val = 7143533
Return Value = True

문자 'm'의 해시 코드는 7143533이며, 동일한 문자 'm'과 비교했기 때문에 Equals() 결과는 True입니다.

정리

Char.GetHashCode() 메서드는 별도의 매개변수 없이 현재 문자 인스턴스의 해시 코드를 int 값으로 반환합니다. 두 예제에서 확인했듯이 서로 다른 문자는 서로 다른 해시 코드를 가지며, 이 특성 덕분에 해시 기반 컬렉션에서 문자 값을 효율적으로 관리할 수 있습니다.