C# einfaches Beispiel für Iteratoren und Indizes
Iterator ist eine Designidee und ein Designmuster. In C# kann ein Iterator einfach implementiert werden, d. h. IenumeratorSchnittstelle . Zum Beispiel habe ich eine Klasse student und möchte jetzt eine studentCollection kapseln. Der Code sieht so aus:
StudentKategorie:
StudentCollection Klasse:
Sehr einfache Kapselung, nur Es gibt ein Feld, nämlich studentList, der Typ von ist list
Codebeschreibung:
1. newEin studentCollection-Objekt und verwenden Sie einen Initialisierer, um jedes einzeln zu initialisieren ein SchülerObjekt
2. 🎜>Verwenden Sie foreach um jeden Studenten zu durchlaufen 3.
Ermitteln Sie den Namen jeder Person und fügen Sie ihn zu einer Zeichenfolge hinzu. Anschließend wird ein Eingabeaufforderungsfeld mit der Anzeige angezeigt
Gibt es eine andere Möglichkeit, die Ienumerator-Schnittstelle zu implementieren? Die Antwort ist ja, der Code lautet wie folgt:
public IEnumerator GetEnumerator() { foreach (Student s in studentList) { yield return s;////使用yield关键字实现迭代器 } }
Bezüglich Indexsymbolen und Indexsymbolüberladung:
Aufmerksame Leser haben das vielleicht in studentCollection< entdeckt 🎜> Im Kurs habe ich zwei Indexsymbole definiert:
////Zugriff < über Index 🎜>
public Student this[int index] { get { return studentList[index]; } }
////Zugriff über Schülernamen
public Student this[string name] { get { return studentList.Single(s => s.StudentName == name); } }
Der Indexüberladungsmechanismus macht die Kapselung flexibler und leistungsfähiger.
Das Obige ist eine detaillierte Erklärung des Beispielcodes von c#-Index und Iterator Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!