我不太明白从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语法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top