답변: foreach가 탐색할 수 있는 객체는 집합 객체 또는 배열 객체여야 하며, 이는 슈퍼인터페이스 IEnumerator 또는 선언된 GetEnumerator 메서드를 구현하는 타입이어야 합니다 Q: 하지만 보통 foreach in을 사용할 때는 바로 사용하는데 문제없습니다. 왜 그런지 여쭤봐도 될까요? 질문에서 묻는 슈퍼 인터페이스 IEnumerator 유형이나 선언된 GetEnumerator 메서드를 구현하고 싶다면, 어떻게 해야 할까요? 감사합니다 답변: foreach in을 사용할 때는 보통 시스템 정의 컬렉션 클래스(ICollection 인터페이스를 구현함)를 사용합니다. 예를 들어, arrayList, stringDictionary, array 등이 있습니다. 이들은 플랫폼에서 패키지화되어 있으며 IEnumerator 인터페이스 구현에 근접하고 있습니다. 작성하는 클래스가 동시에 foreach를 할 수 있으려면, 클래스를 작성할 때 인터페이스를 구현해야 합니다. 이로 인해 이후에 각 이동이 가능합니다. 예를 들어, 한 클래스의 사람들을 정의하고 IEnumerator 인터페이스를 구현하세요. 만약 People[] tempPeople 배열이 있다면, 다음을 사용할 수 있습니다: foreach( p in tempPeople){ console.writeline(p.name); 이렇게 하면 포 루프를 사용하는 번거로움이 없어집니다. Iemumerator 인터페이스를 구현하는 방법에 대해 말씀드리자면, MSDN을 확인해 보세요. 두꺼운 책을 찾아보는 것도 방법입니다.
|