Gewusst wie: Verwenden einer generischen Klasse (Visual Basic)

Eine Klasse, die Typparameter akzeptiert, wird generische Klassegenannt. Wenn Sie eine generische Klasse verwenden, können Sie daraus eine erzeugte Klasse generieren, indem Sie ein Typargument für jeden dieser Parameter angeben. Sie können dann eine Variable vom Typ der erzeugten Klasse deklarieren, und Sie können eine Instanz der erzeugten Klasse erstellen und dieser Variablen zuweisen.

Zusätzlich zu generischen Klassen können Sie auch generische Strukturen, Schnittstellen, Prozeduren und Delegaten definieren und verwenden.

Im folgenden Verfahren wird eine generische Klasse verwendet, die in .NET Framework definiert ist, und daraus eine Instanz erstellt.

Eine Klasse verwenden, die einen Typparameter braucht

  1. Fügen Sie am Anfang Ihrer Quelldatei eine Imports-Anweisung (.NET-Namespace und -Typ) ein, um den Namespace System.Collections.Generic zu importieren. Dadurch können Sie auf die System.Collections.Generic.Queue<T>-Klasse verweisen, ohne sie zur Unterscheidung von anderen Warteschlangenklassen wie z.B. System.Collections.Queue vollständig qualifizieren zu müssen.

  2. Erstellen Sie das Objekt auf die übliche Weise, aber fügen Sie sofort nach dem Klassennamen (Of type) hinzu.

    Im folgenden Beispiel wird dieselbe Klasse (System.Collections.Generic.Queue<T>) verwendet, um zwei Warteschlangenobjekte zu erstellen, die Artikel mit unterschiedlichen Datentypen enthalten. Es fügt Elemente am Ende jeder Warteschlange ein und entfernt und zeigt Elemente am Beginn jeder Warteschlange.

    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