Detaillierte Erläuterung des Beispielcodes für den C#-Index und den Iterator

黄舟
Freigeben: 2017-03-04 10:16:21
Original
1453 Leute haben es durchsucht

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, das Ienumerator Ich habe studentList für den Code der -Schnittstelle verwendet, da diese Klasse diese Schnittstelle implementiert, also verwenden Sie sie einfach. Auf diese Weise kann ich studentCollection mit foreach durchlaufen:

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关键字实现迭代器
            }
        }
Nach dem Login kopieren


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];
            }
        }
Nach dem Login kopieren

////Zugriff über Schülernamen

 

 public Student this[string name]
        {
            get { return studentList.Single(s => s.StudentName == name); }
        }
Nach dem Login kopieren

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)!


Verwandte Etiketten:
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage