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

C# CharEnumerator.Reset() 메서드 완벽 가이드

C#의 CharEnumerator.Reset() 메서드는 열거 중인 문자열의 첫 번째 문자보다 논리적으로 앞선 위치로 인덱스를 초기화하는 역할을 합니다. 이 메서드를 호출하면 다시 MoveNext()를 통해 처음부터 문자열을 순회할 수 있습니다.

문법

public void Reset();

Reset() 메서드는 매개변수를 받지 않으며, 반환값도 없습니다. 단순히 열거자의 현재 위치를 초기 상태로 되돌립니다.

주요 특징

  • 열거자의 위치를 문자열 시작 이전의 초기 상태로 되돌립니다.
  • Reset() 호출 후에는 반드시 MoveNext()를 먼저 호출해야 Current 속성에 접근할 수 있습니다.
  • 동일한 열거자 객체로 문자열을 여러 번 순회해야 할 때 유용합니다.

예제

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

using System;
public class Demo {
    public static void Main(){
        string strNum = "This is it!";
        CharEnumerator ch = strNum.GetEnumerator();
        Console.WriteLine("HashCode = "+ch.GetHashCode());
        Console.WriteLine("Get the Type = "+ch.GetType());
        while (ch.MoveNext())
            Console.Write(ch.Current + " ");
        ch.Reset();
        Console.WriteLine();
        while (ch.MoveNext())
            Console.Write(ch.Current);
    }
}

실행 결과

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

HashCode = 65311716
Get the Type = System.CharEnumerator
T h i s i s i t !
This is it!

코드 설명

위 예제에서는 먼저 GetEnumerator() 메서드를 사용하여 문자열의 CharEnumerator 객체를 생성합니다. 첫 번째 while 루프에서는 MoveNext()와 Current를 활용해 각 문자를 공백으로 구분하여 출력합니다. 그런 다음 Reset() 메서드를 호출하여 열거자의 위치를 초기화하고, 두 번째 while 루프에서 동일한 열거자로 문자열을 다시 한 번 순회하여 출력합니다. 이처럼 Reset() 메서드를 사용하면 새로운 열거자를 생성하지 않고도 기존 열거자를 재사용할 수 있다는 장점이 있습니다.