프로그래밍언어/C#
C#) 반복자
HJH0825
2020. 3. 31. 09:29
반복자
foreach문은 열거자의 값들을 사용하는 소비자라면, iterator는 열거자의 생산자의 해당한다.
다음은 피보나치 수열의 수들을 돌려주는 반복자 메서드를 이용하여 반복자에 대해서 살펴보자
yield return 문은 "이 열거자에 원하셨던 다음 요소가 여기 있으니 받으세요"라고 말하는것과 같다.
함수가 실행된 후 내부상태가 유지 되지않는 return과 다르게 yield return은 내부 상태를 유지하며 다음에 호출차가 다시 열거를 수행하면 열거자는 다음 요소를 돌려주게 된다.
반복자 의미론
반복자는 하나 이상의 yield문이 있는 메서드나 속성, 인덱서이다. 그렇기 때문에 IEnumerable열거 가능 인터페이스와 IEnumerator열거자 인터페이스와 호환되어야 한다.