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