정해진 순서A로 반복시킬 수 있는 놈!! 즉 도구를 쓰는 놈 enumerable
정해진 순서A로 반복하는 도구 enumerator
enumerable은 enumerator를 갖고 있음.
foreach같은 반복자 애들은 다 enumerable이고 enumerator를 갖고 있음
foreach는 형태가 어떻든 그냥 다음! 다음! 다음! 내놔! 하면서 처리함
IEnumerable를 상속받은 intList를 가져다 쓰고 또 그 안에서 GetEnumerator를 통해 IEnumerator를 상속받은 애를 사용함.
foreach(기능을 사용하는 애)가 알아야 하는 건 안에 구현된 내용이 아니라 사용할 수 있는 형태!
이렇게 내부의 기능의 구현을 숨기면서 사용자에게 인터페이스만을 제공해주는 것을 캡슐화라고 한다.
CoroutineYieldInstruction 상속받으면 기다리는 동안 무엇을 시킬지 커스텀할 수 있음.