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

C# Byte.GetHashCode() 메서드 사용법과 예제 완벽 정리

C#에서 Byte.GetHashCode() 메서드는 현재 바이트(Byte) 인스턴스에 대한 해시 코드(hash code)를 반환합니다. 해시 코드는 해시 테이블(HashTable), 딕셔너리(Dictionary) 등 해시 기반 컬렉션에서 객체를 빠르게 조회할 때 활용되는 정수 값입니다.

구문(Syntax)

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

public override int GetHashCode();

이 메서드는 매개변수를 받지 않으며, 현재 byte 값에 해당하는 int 타입의 해시 코드를 반환합니다.

예제(Example)

아래 예제를 통해 Byte.GetHashCode() 메서드의 실제 동작 방식을 확인해 보겠습니다. 이 예제에서는 long 타입 값을 BitConverter.GetBytes()로 바이트 배열로 변환한 뒤, 각 바이트의 해시 코드를 순차적으로 출력합니다.

using System;
public class Demo {
   public static void Main(){
      long val = 5654665;
      byte[] arr = BitConverter.GetBytes(val);
      for (int i = 0; i < arr.Length; i++) {
         int res = arr[i].GetHashCode();
         Console.WriteLine("Hashcode = "+res);
      }
   }
}

출력 결과(Output)

위 프로그램을 실행하면 다음과 같은 출력 결과가 나타납니다.

Hashcode = 137
Hashcode = 72
Hashcode = 86
Hashcode = 0
Hashcode = 0
Hashcode = 0
Hashcode = 0
Hashcode = 0

핵심 포인트

  • long 값 5654665는 8바이트 배열로 변환되며, 상위 바이트들이 0이므로 뒷부분의 해시 코드도 0으로 출력됩니다.
  • byte 타입의 경우 값 범위가 0~255로 제한되어 있기 때문에, 해시 코드가 실제 바이트 값과 동일하게 반환되는 특징이 있습니다.
  • GetHashCode()는 Object 클래스에서 상속받은 메서드를 오버라이드(override)한 것입니다.