题
我不太明白从C#集合使用的IEnumerator的是什么。 用的是什么以及为什么它应该被使用?
我想在 http://msdn.microsoft网上通缉.COM / EN-US /库/ system.collections.ienumerator.aspx 但文章并没有太大的意义。我想问的原因是在Unity3d游戏引擎,它的使用随着产量的功能。我试图取消对使用了IEnumerator的理由感。
解决方案
在IEnumerator接口,当由类实现允许它被重复使用,通过内置的的foreach语法。
在类需要被重复用于IEnumerator接口定义的方法签名到GetEnumerator功能,其控制通过所述对象循环。
public IEnumerator<OrderLine> GetEnumerator()
{
for (int i=0;i<maxItems;i++)
{
yield return item[i];
}
}
正如你可以看到在这个例子中,收益语句让您无需枚举失去位置控制返回给调用者。当呼叫者击中foreach循环的下一个增量控制将被传递yield语句后回线。
其他提示
您很少使用的IEnumerator明确,但也有很多的扩展方法与它的工作,还有foreach
。所有集合的实现它,并且它的迭代器模式的一个例子。
这是相当简单地只是一个接口,它允许对象执行用于对集合容易迭代。你可以用它来创建对象,其迭代一个自定义的集合与foreach结构或similiar语法。
不隶属于 StackOverflow