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 속성에 접근할 수 없으므로 주의해야 합니다.