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

C# CharEnumerator.MoveNext() 메서드 완벽 정리

C#의 CharEnumerator.MoveNext() 메서드는 현재 CharEnumerator 객체의 내부 인덱스를 증가시켜, 열거 중인 문자열의 다음 문자로 이동하는 역할을 합니다. 문자열을 한 글자씩 순회하면서 처리해야 할 때 유용하게 사용됩니다.

문법

public bool MoveNext ();

MoveNext() 메서드는 다음 문자가 존재하면 true를 반환하고, 문자열의 끝에 도달하면 false를 반환합니다. 따라서 일반적으로 while 루프와 함께 사용됩니다.

사용 예제

다음은 CharEnumerator.MoveNext() 메서드를 실제로 구현한 예제입니다.

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

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

HashCode = 1373506
Get the Type = System.CharEnumerator
j o h n

핵심 포인트 정리

  • MoveNext(): 내부 인덱스를 다음 문자로 이동시키며, 이동 가능 여부를 bool 값으로 반환합니다.
  • Current 속성: 현재 인덱스가 가리키는 문자를 반환합니다.
  • Dispose(): CharEnumerator 객체의 리소스를 해제합니다. Dispose 호출 후에는 Current 속성에 접근할 수 없으므로 주의해야 합니다.