Quando o método IEnumerator.Reset () é chamado?
vamos ter este código:
class MyList : IEnumerable, IEnumerator
{
int[] A = { 1, 2, 3, 4, 5 };
int i = -1;
#region IEnumerator Members
public object Current
{
get { return A[i]; }
}
public bool MoveNext()
{
i++;
return i < 5;
}
public void Reset()
{
i = -1;
}
#endregion
#region IEnumerable Members
public IEnumerator GetEnumerator()
{
return (IEnumerator)this;
}
#endregion
}
E no método principal:
MyList list = new MyList();
foreach (int i in list)
{
Console.WriteLine(i);
}
foreach (int i in list)
{
Console.WriteLine(i);
}
Por que o segundo foerach não funciona? e o "i" não inicializa novamente ??
Isso é verdade: o método Reset deve ser chamado automaticamente antes que o foreach seja executado?
por que não chama aqui ??