Wenn die IEnumerator.Reset () -Methode aufgerufen wird?
Lass uns diesen Code haben:
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
}
Und in der Hauptmethode:
MyList list = new MyList();
foreach (int i in list)
{
Console.WriteLine(i);
}
foreach (int i in list)
{
Console.WriteLine(i);
}
Warum funktioniert die zweite Förach nicht? und das "i" wird nicht erneut initialisiert ??
Ist das wahr: Reset-Methode sollte automatisch aufgerufen werden, bevor foreach ausgeführt wird ??
warum ruft es hier nicht an ??