C#의 CharEnumerator.Dispose() 메서드는 CharEnumerator 클래스의 현재 인스턴스에서 사용 중인 모든 리소스를 해제하는 데 사용됩니다. 문자열을 문자 단위로 순회한 후 더 이상 열거자가 필요하지 않을 때 호출하여 시스템 자원을 효율적으로 관리할 수 있습니다.
구문
public void Dispose ();
Dispose() 메서드는 매개변수를 받지 않으며, 반환값도 없습니다. 호출된 인스턴스가 사용하던 내부 리소스를 즉시 해제합니다.
사용 예제
다음 예제는 CharEnumerator.Dispose() 메서드를 실제로 구현하는 방법을 보여줍니다.
using System;
public class Demo {
public static void Main(){
string strNum = "356";
CharEnumerator ch = strNum.GetEnumerator();
while (ch.MoveNext())
Console.Write(ch.Current + " ");
// 열거자 해제
ch.Dispose();
// 위에서 객체를 Dispose 했기 때문에
// 아래 코드는 오류가 발생합니다.
// Console.WriteLine(ch.Current);
}
}실행 결과
위 프로그램을 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
3 5 6
주요 특징
- 리소스 해제: Dispose() 호출 후에는 해당 CharEnumerator 인스턴스를 더 이상 사용할 수 없습니다.
- 재사용 불가: 해제된 객체에 접근하려고 하면
ObjectDisposedException과 같은 오류가 발생할 수 있으므로 주의해야 합니다. - IDisposable 구현: CharEnumerator는 IDisposable 인터페이스를 구현하므로,
using문을 활용하면 Dispose() 호출을 자동으로 처리할 수 있습니다.
문자열을 반복 처리한 후에는 반드시 Dispose()를 호출하거나 using 블록을 사용하여 리소스 누수를 방지하는 것이 좋은 코딩 습관입니다.