我在玩弄yield
和IEnumerable
,现在我很好奇下面的代码片段为什么会起作用:
public class FakeList : IEnumerable<int>
{
private int one;
private int two;
public IEnumerator<int> GetEnumerator()
{
yield return one;
yield return two;
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
现在编译器如何将这个转换:
public IEnumerator<int> GetEnumerator()
{
yield return one;
yield return two;
}
如何将其转换为 IEnumerator<int>
?