Porady: używanie klasy ogólnej (Visual Basic)

Klasa, która przyjmuje parametry typu, jest nazywana klasą ogólną. Jeśli używasz klasy ogólnej, możesz wygenerować z niej skonstruowaną klasę, podając argument typu dla każdego z tych parametrów. Następnie można zadeklarować zmienną typu skonstruowanej klasy i utworzyć wystąpienie skonstruowanej klasy i przypisać ją do tej zmiennej.

Oprócz klas można również definiować i używać struktur ogólnych, interfejsów, procedur i delegatów.

Poniższa procedura przyjmuje klasę ogólną zdefiniowaną w programie .NET Framework i tworzy na jej podstawie wystąpienie.

Aby użyć klasy, która przyjmuje parametr typu

  1. Na początku pliku źródłowego dołącz instrukcję Import (Przestrzeń nazw i typ platformy .NET), aby zaimportować System.Collections.Generic przestrzeń nazw. Dzięki temu można odwoływać się do System.Collections.Generic.Queue<T> klasy bez konieczności w pełni kwalifikowanej klasy, aby odróżnić ją od innych klas kolejek, takich jak System.Collections.Queue.

  2. Utwórz obiekt w normalny sposób, ale dodaj (Of type) bezpośrednio po nazwie klasy.

    W poniższym przykładzie użyto tej samej klasy (System.Collections.Generic.Queue<T>), aby utworzyć dwa obiekty kolejki, które przechowują elementy różnych typów danych. Dodaje elementy na końcu każdej kolejki, a następnie usuwa i wyświetla elementy z przodu każdej kolejki.

    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
    

Zobacz też