Heim > Backend-Entwicklung > C++ > Welche Arten von C#-Klassen unterstützen Foreach-Schleifen?

Welche Arten von C#-Klassen unterstützen Foreach-Schleifen?

Patricia Arquette
Freigeben: 2025-01-10 10:18:40
Original
892 Leute haben es durchsucht

What Types of C# Classes Support Foreach Loops?

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage