Stavo giocherellando in giro con yield
e IEnumerable
e ora sono curioso di sapere perchè e come funziona il seguente frammento:In che modo la resa è enumerabile?
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();
}
}
Ora, come fa il compilatore a girare questo:
public IEnumerator<int> GetEnumerator()
{
yield return one;
yield return two;
}
in un IEnumerator<int>
?
http://csharpindepth.com/Articles/Chapter6/IteratorBlockImplementation.aspx –
magia del compilatore! – RBarryYoung