Gewusst wie: Verwenden einer generischen Klasse
Aktualisiert: November 2007
Eine Klasse, die Typparameter akzeptiert, wird als generische Klasse bezeichnet. Wenn Sie eine generische Klasse verwenden, können Sie aus ihr eine konstruierte Klasse generieren, indem Sie für jeden dieser Parameter ein Typargument angeben. Anschließend können Sie eine Variable vom Typ der konstruierten Klasse deklarieren oder eine Instanz der konstruierten Klasse erstellen und dieser Variablen zuweisen.
Außer generischen Klassen können Sie auch generische Strukturen, Schnittstellen, Prozeduren und Delegaten definieren und verwenden.
Die folgende Prozedur akzeptiert eine in .NET Framework definierte generische Klasse und erstellt eine Instanz dieser Klasse.
So verwenden Sie eine Klasse, die einen Typparameter akzeptiert
Fügen Sie am Anfang der Quelldatei eine Imports-Anweisung (.NET-Namespace und Typ) ein, um den System.Collections.Generic-Namespace zu importieren. Hierdurch können Sie auf die System.Collections.Generic.Queue<T>-Klasse verweisen, ohne sie als vollqualifizierte Klasse festzulegen, um sie von anderen Warteschlangeklassen, z. B. System.Collections.Queue, zu unterscheiden.
Erstellen Sie das Objekt auf die übliche Weise, doch fügen Sie direkt nach dem Klassennamen (Of type) hinzu.
Im folgenden Beispiel wird dieselbe Klasse (System.Collections.Generic.Queue<T>) zum Erstellen von zwei Warteschlangeobjekten verwendet, die Elemente unterschiedlicher Datentypen enthalten. Am Ende jeder Warteschlange werden Elemente hinzugefügt und anschließend am Beginn jeder Warteschlange Elemente entfernt und angezeigt.
Public Sub usequeue() Dim queueDouble As New System.Collections.Generic.Queue(Of Double) Dim queueString As New System.Collections.Generic.Queue(Of String) queueDouble.Enqueue(1.1) queueDouble.Enqueue(2.2) queueDouble.Enqueue(3.3) queueDouble.Enqueue(4.4) queueString.Enqueue("First string of three") queueString.Enqueue("Second string of three") queueString.Enqueue("Third string of three") Dim s As String = "Queue of Double items (reported length " _ & CStr(queueDouble.Count) & "):" For i As Integer = 1 To queueDouble.Count s &= vbCrLf & CStr(queueDouble.Dequeue()) Next i s &= vbCrLf & "Queue of String items (reported length " _ & CStr(queueString.Count) & "):" For i As Integer = 1 To queueString.Count s &= vbCrLf & queueString.Dequeue() Next i MsgBox(s) End Sub
Siehe auch
Aufgaben
Konzepte
Generische Typen in Visual Basic
CLS (Common Language Specification)