考虑两个具有相同主体的迭代器方法:
public static IEnumerable<int> It1() {
...
}
public static IEnumerator<int> It2() {
...
}
是否有任何情况下 callIt2
与 call 不同It1.GetEnumerator()
?
是否有充分的理由将迭代器定义为IEnumerator<T>
over IEnumerable<T>
?我唯一能想到的就是当你在实施IEnumerable<T>.GetEnumerator()
.
编辑:迭代器方法是指使用yield return
和yield break
构造的方法。