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 ??

Antworten auf die Frage(10)

Ihre Antwort auf die Frage