저는 현재 C# 과정을 배우고 있으며 설명이 필요합니다. 아마도 경험이 많은 사람에게는 논리적이고 간단 할 것입니다.하지만 코드는 이런 방식으로 작동해야한다고 생각합니다. 누락 된 코드 출력에 대한 설명이 필요합니다.
나는 의 foreach라는 이름의 반복자를 사용하여 루프 내Garage
클래스
carArray
내부의 모든
Car
객체를 인쇄하기 위해 노력하고있어,하지만 난
거짓 값
GetTheCars
에 대한 방법을 전달하고 다른 블록 내부에 들어갈 때 아무 일도 발생하지 않습니다. 역순으로 인쇄 배열을 잘 작동합니다. 이 .. 코드입니다
Main 메서드
:
static void Main(string[] args)
{
Garage carLot = new Garage();
foreach (Car c in carLot.GetTheCars(false))
{
Console.WriteLine("{0} is going {1} MPH", c.PetName, c.CurrentSpeed);
}
Console.WriteLine();
foreach (Car c in carLot.GetTheCars(true))
{
Console.WriteLine("{0} is going {1} MPH", c.PetName, c.CurrentSpeed);
}
}
주차장 클래스 : else 문 안에있는 책의 예에서
class Garage : IEnumerable
{
private Car[] carArray = new Car[4];
public Garage()
{
carArray[0] = new Car("Rusty", 30);
carArray[1] = new Car("Clunker", 55);
carArray[2] = new Car("Zippy", 30);
carArray[3] = new Car("Fred", 30);
}
public IEnumerator GetEnumerator()
{
foreach (Car c in carArray)
{
yield return c;
}
}
public IEnumerable GetTheCars(bool ReturnReversed)
{
if (ReturnReversed)
{
for (int i = carArray.Length; i != 0; i--)
{
yield return carArray[i-1];
}
}
else
{
GetEnumerator();
}
}
이 같은 코드를 같이 작성 GetEnumerator()
방법 :
도서 코드 differe 후부는 :
else
{
foreach (Car c in carArray)
{
yield return c;
}
}
나는이 책의 앞의 예에서 사용 된 GetEnumerator()
방법 내부의 코드를 재사용 할 수 있다고 생각하지만, 그것은 아무것도를 출력하지 않습니다. 누군가 제가 왜 감사히 여기고 환호하고 감사 드려야하는지 설명 해줄 수 있다면!