|
{
private Car[] carArray; public Cars() { carArray = new Car[4]; carArray[0] = new Car("FeeFee", 200, 0); carArray[1] = new Car("Fee", 200, 0); carArray[2] = new Car("Zippy", 200, 0); carArray[3] = new Car("Fred", 200, 0); } } main() { foreach (Car c in carLot) { Console.WriteLine("Name : {0} ", c.PetName); Console.WriteLine("Max Speed : {0}", c.MaxSpeed); } } 그러나 이 코드를 실행하려고 하면 , Cars 클래스에 GetEnumerator() 메소드가 구현되지 않았다는 컴파일 에러가 발생할 것이다. 이 메소드는 System.Collections 네임스페이스에 숨어 있는 IEnumerable 인터페이스에 정의되어 있다. // foreach 구문을 이용해서 하위 형식을 얻으려면, 컨테이너가 반드시 IEnumerable 을 구현해야 한다. public class Cars : IEnumerable // IEnumerator 는 필요하지 않다! { // 이 클래스에는 자동차의 배열이 들어 있다. public IEnumerator GetEnumerator() { // 이제는 내부 배열로부터 IEnumerator 를 반환한다! return carArray.GetEnumerator(); } }
| ||||