为什么在实现IEnumerable时需要实现IEnumerator

时间:2015-06-24 22:25:35

标签: c# .net

为什么在实施IEnumerator时需要实施IEnumerable。无论我在哪里阅读它只是写它必须发生,但我只想答案为什么。

2 个答案:

答案 0 :(得分:1)

IEnumerable interface必须实现mach_override方法,该方法返回GetEnumerator()。要返回IEnumerator,必须有一些实现让您返回。根据您的课程,可以重复使用现有的IEnumerator实施,但您的课程也可能有自定义的迭代方式,在这种情况下您需要创建您自己的此接口实现。

但是,有一种快捷语法可用。您可以使用IEnumerator方法中的yield return关键字让C​​#编译器根据您提供的内联代码为您创建IEnumerator实现。例如,Collection类的This example以这种方式实现它:

GetEnumerator()

答案 1 :(得分:0)

从MICROSOFT文档中可以看到,“实现IEnumerable时,还必须实现IEnumerator。”

https://docs.microsoft.com/en-us/dotnet/api/system.collections.ienumerator?view=netframework-4.7.2