Heim >Backend-Entwicklung >C#.Net-Tutorial >Detaillierte Erläuterung des Beispielcodes für den C#-Index und den Iterator

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

黄舟
黄舟Original
2017-03-04 10:16:211472Durchsuche

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 list1f479e44f2c9bd2301ecbd2b69e4d7bf, 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关键字实现迭代器
            }
        }


Bezüglich Indexsymbolen und Indexsymbolüberladung:

Aufmerksame Leser haben das vielleicht in studentCollection Im Kurs habe ich zwei Indexsymbole definiert:

////Zugriff

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


Stellungnahme:
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