차례:
정의-반복자는 무엇을 의미합니까?
C #의 맥락에서 이터레이터는 컬렉션 또는 배열의 순서가 지정된 값 시퀀스를 반환하는 코드 블록입니다. "yield"키워드를 포함하는 하나 이상의 명령문을 포함하는 반복자 블록을 사용하여 구현 된 멤버 함수입니다.
반복자는 콜렉션 또는 배열을 포함하는 컨테이너 클래스의 소비자가 "foreach"문을 사용하여보다 간단한 방식으로 콜렉션을 순회 할 수 있도록하는 데 사용됩니다. 이 형식은 강력한 형식의 컬렉션 클래스와 함께 사용되어 이진 트리와 같은 복잡한 데이터 구조를 반복하여 재귀 순회가 필요하고 재귀를 통해 반복 상태를 유지합니다. 반복자의 개념은 LINQ 쿼리에서 지연된 실행을 구현하는 데에도 사용됩니다.
Techopedia는 Iterator를 설명합니다
반복자는 컬렉션의 기본 구조를 노출시키지 않고 항목 컬렉션의 요소를 순차적으로 순회하는 방법을 제공하는 디자인 패턴을 기반으로합니다. "foreach"문을 지원하는 콜렉션 클래스를 작성할 때 "IEnumerator"인터페이스를 수동으로 구현하는 지루한 작업을 제거합니다. IEnumerator 인터페이스의 메서드 및 속성을 구현하는 데 필요한 중급 언어 코드는 컴파일러에서 생성되므로 구문이 더 간단하고 코드 크기가 줄어들며 개발자 생산성이 향상됩니다.
일반적으로 반복자는 콜렉션의 데이터 요소에 대한 액세스를 제공하지만 반복을 수행하지 않는다는 점에서 데이터베이스 커서와 유사합니다. 반복자는 C #에서 메소드, 연산자 또는 get 접근 자로 구현 될 수 있습니다. 예를 들어, 반복자를 사용하여 문자열 컬렉션을 탐색하여 컬렉션에있는 각 문자열의 내용을 표시 할 수 있습니다.
반복자는 IEnumerator 인터페이스로 표현되며 다음 메소드를 사용하여 컴파일러에 의해 구현됩니다.
- MoveNext : 컬렉션의 다음 요소로 이동하여 해당 컬렉션의 끝을 나타내는 메서드
- 현재 : 현재 가리키는 요소의 값을 가져 오는 속성
- 처리 : 반복 정리