Como usar uma classe genérica (Visual Basic)

Uma classe que usa parâmetros de tipo é chamada de classe genérica. Se você estiver usando uma classe genérica, poderá gerar uma classe construída dela fornecendo um argumento de tipo para cada um desses parâmetros. Em seguida, você pode declarar uma variável do tipo de classe construída e pode criar uma instância da classe construída e atribuí-la a essa variável.

Além das classes, você também pode definir e usar estruturas genéricas, interfaces, procedimentos e delegados.

O procedimento a seguir usa uma classe genérica definida no .NET Framework e cria uma instância dela.

Para usar uma classe que usa um parâmetro de tipo

  1. No início do arquivo de origem, inclua uma Instrução Imports (Namespace e Tipo do .NET) para importar o namespace System.Collections.Generic. Isso permite que você se refira à classe System.Collections.Generic.Queue<T> sem precisar qualificá-la totalmente para diferenciá-la de outras classes de fila, como System.Collections.Queue.

  2. Crie o objeto da maneira normal, mas adicione (Of type) imediatamente após o nome de classe.

    O exemplo a seguir usa a mesma classe (System.Collections.Generic.Queue<T>) para criar dois objetos de fila que contêm itens de diferentes tipos de dados. Ele adiciona itens ao final de cada fila e, em seguida, remove e exibe itens da frente de cada fila.

    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
    

Confira também