foreach-Schleife in C#
Frage:
Welche Arten von Klassen erlauben die Verwendung von foreach-Schleifen?
Antwort:
Technisch gesehen kann jede Klasse verwendet werden, die über eine öffentliche Methode namens GetEnumerator() verfügt, die einen Typ mit einer boolschen MoveNext()-Methode und einer Current-Eigenschaft zurückgibt. Die häufigste Erklärung betrifft jedoch eine Klasse, die IEnumerable oder IEnumerable implementiert und einen IEnumerator oder IEnumerator zurückgibt.
Als Erweiterung kann jede Klasse, die ICollection oder ICollection implementiert (z. B. Collection, List, Array (T[])), foreach-Schleifen unterstützen.
So funktioniert es:
Die foreach-Schleife funktioniert wie folgt:
- Initialisieren Sie ein temporäres Objekt (tmp) über die GetEnumerator()-Methode des angegebenen Objekts (obj).
- Solange tmp.MoveNext() true zurückgibt, wird der Schleifenkörper (umgeben von {...}) wiederholt ausgeführt und enthält den aktuellen Wert von Current.
Variationen:
- Wenn tmp IDisposable unterstützt, verwenden Sie es, um tmp zu entsorgen, wenn die Schleife abgeschlossen ist.
- C# 5.0 ermöglicht die Deklaration von Variablen wie i innerhalb einer Schleife, während sie in früheren Versionen außerhalb der Schleife deklariert werden mussten. Diese Unterscheidung ist von entscheidender Bedeutung, wenn i in einer anonymen Methode oder einem Lambda-Ausdruck innerhalb einer Schleife verwendet wird.
Das obige ist der detaillierte Inhalt vonWelche Arten von C#-Klassen unterstützen Foreach-Schleifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!