Dela via


Gör så här: Använda en allmän klass (Visual Basic)

En klass som tar typparametrar kallas för en generisk klass. Om du använder en allmän klass kan du generera en konstruerad klass från den genom att ange ett typargument för var och en av dessa parametrar. Du kan sedan deklarera en variabel av den konstruerade klasstypen och du kan skapa en instans av den konstruerade klassen och tilldela den till variabeln.

Förutom klasser kan du även definiera och använda allmänna strukturer, gränssnitt, procedurer och ombud.

Följande procedur tar en allmän klass som definierats i .NET Framework och skapar en instans från den.

Så här använder du en klass som tar en typparameter

  1. I början av källfilen inkluderar du en importinstruktion (.NET-namnområde och typ) för att importera System.Collections.Generic namnområdet. På så sätt kan du referera till System.Collections.Generic.Queue<T> klassen utan att helt kvalificera den för att skilja den från andra köklasser, till exempel System.Collections.Queue.

  2. Skapa objektet på normalt sätt, men lägg till (Of type) direkt efter klassnamnet.

    I följande exempel används samma klass (System.Collections.Generic.Queue<T>) för att skapa två köobjekt som innehåller objekt av olika datatyper. Den lägger till objekt i slutet av varje kö och tar sedan bort och visar objekt från framsidan av varje kö.

    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
    

Se även