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

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

C#의 CharEnumerator.GetHashCode() 메서드는 현재 객체에 대한 해시 코드(hash code)를 반환합니다. 해시 코드는 객체를 고유하게 식별하는 데 사용되는 정수 값으로, 주로 해시 테이블과 같은 데이터 구조에서 활용됩니다.

문법(Syntax)

public virtual int GetHashCode ();

반환 타입은 int이며, 해당 객체의 해시 코드를 나타내는 32비트 부호 있는 정수가 반환됩니다.

CharEnumerator.GetHashCode() 메서드 예제

아래 예제를 통해 CharEnumerator.GetHashCode() 메서드가 실제로 어떻게 동작하는지 확인해 보겠습니다.

using System;
public class Demo {
   public static void Main(){
      string strNum = "john";
      CharEnumerator ch = strNum.GetEnumerator();
      Console.WriteLine("HashCode = "+ch.GetHashCode());
      while (ch.MoveNext())
         Console.Write(ch.Current + " ");
      // 객체 해제
      ch.Dispose();
      // 위에서 객체를 해제했기 때문에 아래 코드는 오류를 발생시킵니다
      // Console.WriteLine(ch.Current);
   }
}

실행 결과(Output)

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

HashCode = 30571253
j o h n

코드 설명

예제 코드의 동작 과정을 살펴보면 다음과 같습니다.

먼저 문자열 "john"을 선언하고, GetEnumerator() 메서드를 호출하여 해당 문자열을 순회할 수 있는 CharEnumerator 객체를 생성합니다. 그다음 GetHashCode() 메서드를 호출해 이 열거자 객체의 해시 코드를 콘솔에 출력합니다.

이후 MoveNext() 메서드와 Current 속성을 활용한 while 루프를 통해 문자열의 각 문자를 하나씩 순회하며 출력합니다. 마지막으로 Dispose() 메서드를 호출하여 열거자 객체가 사용하는 리소스를 해제합니다.

주의 사항

객체를 Dispose()로 해제한 후에는 해당 객체에 더 이상 접근할 수 없습니다. 따라서 해제된 후에 ch.Current처럼 객체의 멤버에 접근하려 하면 오류가 발생하므로 주의해야 합니다.