안녕하세요, 빠르게 댓글 달아주셔서 감사합니다.
public IEnumerable GetEnumerator()
{
}
이렇게 리턴타입을 IEnumerator가 아닌 IEnumerable로 오타내서 안된 것이었습니다;;
상세히 알려주셔서 감사드립니다.
On 2021-12-28 오후 12:03:00, '레드플러스' wrote:
안녕하세요.
반복기(Iterator)의 특징이,
내가 만든 개체(language)를 foreach 문에 사용되도록 설정하는 기능입니다.
그래서,
GetEnumerator() 메서드가 구현된 클래스(Language)의 인스턴스인 language 개체를
foreach 문에서 호출해서 사용되면 내부적으로
GetEnumerator() 메서드가 호출되는 형태입니다.
결론적으로 말씀드려,
말씀주신 것처럼 하지 않아도
foreach (var lang in language) {} 형태로
편하게 foreach 문에서 사용할 수 있게 해주는게
이터레이터라고 보면 됩니다.
피드백 주셔서 감사합니다.
On 2021-12-28 오전 11:50:00, '유지훈' wrote:
p542에서 페이지 상단의 C# Interactive에 타이핑한 코드 부분에서
> foreach (var lang in language) 이 부분을 > foreach (var lang in language.GetEnumerator())
로 수정해야 할 것 같습니다.