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 값으로 반환합니다. 두 예제에서 확인했듯이 서로 다른 문자는 서로 다른 해시 코드를 가지며, 이 특성 덕분에 해시 기반 컬렉션에서 문자 값을 효율적으로 관리할 수 있습니다.