考虑两个具有相同主体的迭代器方法:
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构造的方法。