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

C# Boolean.GetHashCode() 메서드 완벽 정리: 예제 코드로 쉽게 이해하기

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

문법(Syntax)

public override int GetHashCode();

이 메서드는 매개변수를 받지 않으며, 해당 인스턴스의 해시 코드를 나타내는 int 형식의 값을 반환합니다. Boolean 값의 경우 true는 1, false는 0을 반환합니다.

예제 1: 문자열과 Boolean의 해시 코드 비교

다음 예제에서는 문자열과 Boolean 값에 대해 GetHashCode() 메서드를 호출한 결과를 확인할 수 있습니다.

using System;
public class Demo {
    public static void Main(String[] args){
        string str = "JackSparrow!";
        bool val = true;
        char[] arr = { 'J', 'a'};
        Console.WriteLine("String = "+str);
        Console.WriteLine("String (after trim) = " + str.Trim(arr));
        Console.WriteLine("String (Hashcode) = "+str.GetHashCode());
        Console.WriteLine("Bool (Hashcode) = "+val.GetHashCode());
    }
}

실행 결과

String = JackSparrow!
String (after trim) = ckSparrow!
String (Hashcode) = -203134198
Bool (Hashcode) = 1

위 결과에서 볼 수 있듯이, 문자열의 해시 코드는 내용에 따라 임의의 정수로 생성되지만, Boolean 값 true의 해시 코드는 항상 1로 고정되어 반환됩니다.

예제 2: true와 false의 해시 코드 및 TypeCode 확인

이번에는 truefalse 두 가지 Boolean 값에 대해 각각 해시 코드와 TypeCode를 함께 출력해 보겠습니다.

using System;
public class Demo {
    public static void Main(String[] args) {
        bool val1 = true;
        bool val2 = false;
        Console.WriteLine("Value1 (Hashcode) = "+val1.GetHashCode());
        Console.WriteLine("Value1 (TypeCode) = "+val1.GetTypeCode());
        Console.WriteLine("Value2 (Hashcode) = "+val2.GetHashCode());
        Console.WriteLine("Value2 (TypeCode) = "+val2.GetTypeCode());
    }
}

실행 결과

Value1 (Hashcode) = 1
Value1 (TypeCode) = Boolean
Value2 (Hashcode) = 0
Value2 (TypeCode) = Boolean

핵심 정리

  • true의 해시 코드는 항상 1, false의 해시 코드는 항상 0입니다.
  • GetHashCode()는 매개변수 없이 호출하며 int 타입의 값을 반환합니다.
  • GetTypeCode() 메서드를 사용하면 해당 인스턴스의 타입 코드가 Boolean임을 확인할 수 있습니다.