Verwalten von Objekten mit Auflistungen
Aktualisiert: November 2007
Auflistungen stellen eine ideale Möglichkeit zum Verwalten einer Vielzahl von Objekten dar. Sie können Objekte zu Auflistungen hinzufügen und aus diesen entfernen, sie auf der Grundlage eines Index oder Schlüssels abrufen und die For Each...Next-Anweisung (Visual Basic) verwenden, um die Elemente in der Auflistung zu durchlaufen.
Typunsichere Auflistungen
Die hohe Flexibilität von Auflistungen kann jedoch die Stabilität von Klassen beeinträchtigen. Die durch Visual Basic bereitgestellte Auflistung speichert z. B. alle Elemente als Typ Object, sodass Sie ein Element mit einem beliebigen Datentyp hinzufügen können. In diesem Fall gibt es keinen Schutz gegen das Hinzufügen ungeeigneter Datentypen. Wenn Sie auf ein Element zugreifen, müssen Sie es deshalb vom Typ Object in den gewünschten Datentyp konvertieren.
Spezialisierte Auflistungen
.NET Framework stellt mehrere Alternativen für die Visual Basic-Auflistung bereit. Der System.Collections-Namespace enthält Auflistungsklassen mit spezieller Funktionalität, beispielsweise eine Warteschlange oder eine sortierte Liste, während der System.Collections.Specialized-Namespace Auflistungsklassen mit besonderen Eigenschaften enthält, z. B. HybridDictionary.
Typsichere Auflistungen
Um die Nachteile von Elementen des Typs Object zu vermeiden, können Sie die generischen Auflistungen des System.Collections.Generic-Namespaces verwenden. Diese Auflistungen gewährleisten Typsicherheit und gestatten Ihnen, die Elemente einer Auflistung auf einen bestimmten Datentyp zu beschränken.
Herangehensweisen für die Verwendung von Auflistungen
Es gibt drei generelle Herangehensweisen zum Implementieren der Objektverwaltung unter Verwendung von Auflistungen. Nehmen Sie eine Anwendung, die eine widgetRepository-Klasse definiert (organisiert widget-Objekte und macht diese für Clientkomponenten verfügbar). Zum Implementieren von widgetRepository mit einer Auflistung können Sie auf eine der folgenden Strategien zurückgreifen.
Verwenden Sie eine Auflistungsklasse. Deklarieren Sie in der widgetRepository-Klasse eine widgetsColl-Variable als eine Instanz der Visual Basic-Auflistungsklasse bzw. als eine Instanz einer der Klassen in den Namespaces System.Collections, System.Collections.Generic oder System.Collections.Specialized. Veröffentlichen Sie die Variable, und erstellen Sie mithilfe des New (Visual Basic)-Schlüsselworts eine Instanz der Auflistung. Weitere Informationen finden Sie unter Gewusst wie: Definieren von Auflistungen in eigenen Klassen.
Erben Sie eine Auflistungsbasisklasse. Implementieren Sie eine eigene widgetsColl-Klasse durch Vererbung von der CollectionBase-Klasse. Definieren Sie in der widgetRepository-Klasse eine Instanz der widgetsColl-Klasse sowie eine Eigenschaft, die diese Instanz zurückgibt. Weitere Informationen finden Sie unter Gewusst wie: Definieren von Auflistungen in eigenen Klassen.
Schreiben Sie die Auflistung selbst. Implementieren Sie Auflistungsfunktionen in der widgetRepository-Klasse, indem Sie die entsprechenden Klassen und Prozeduren schreiben. Diese Herangehensweise ist insbesondere dann sinnvoll, wenn die Klasse Auflistungsfunktionen enthalten soll, jedoch von keiner der vorhandenen Auflistungsklassen erben kann. Dies wäre z. B. in dem seltenen Fall möglich, dass die Klasse von einer anderen Klasse als einer Auflistungsklasse erben muss. Da die Klasse nur von einer Klasse erben kann, müssten Sie Auflistungsmember definieren und implementieren.
Siehe auch
Konzepte
Visual Basic-Auflistungsklasse