interface
自定义类型如果要使用foreach,需要定义一个名为GetEnumberator()的方法。由IEnumberator接口类型来定制。这个方法通常是交给保存子对象的内部成员。也可以使用yield return来实现。
public
class Garage
{
private Car[] carArray = new Car[4];
.. .
// 迭代器方法。
public IEnumerator GetEnumerator()
{
foreach (Car c in carArray)
{
yield return c;
}
}
}
public IEnumerable GetTheCars( bool ReturnRevesed)
{
// 逆序返回项。
if (ReturnRevesed)
{
for ( int i = carArray.Length; i != 0; i--)
{
yield return carArray[i-1];
}
}
else
{
// 按顺序返回数组中的项。
foreach (Car c in carArray)
{
yield return c;
}
}
}
{
private Car[] carArray = new Car[4];
.. .
// 迭代器方法。
public IEnumerator GetEnumerator()
{
foreach (Car c in carArray)
{
yield return c;
}
}
}
public IEnumerable GetTheCars( bool ReturnRevesed)
{
// 逆序返回项。
if (ReturnRevesed)
{
for ( int i = carArray.Length; i != 0; i--)
{
yield return carArray[i-1];
}
}
else
{
// 按顺序返回数组中的项。
foreach (Car c in carArray)
{
yield return c;
}
}
}
转载于:https://blog.51cto.com/zhupengyue/316502