Partilhar via


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 a partir dela fornecendo um argumento type 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 a partir dela.

Para usar uma classe que usa um parâmetro type

  1. No início do arquivo de origem, inclua uma instrução Imports (.NET Namespace and Type) para importar o System.Collections.Generic namespace. Isso permite que você faça referência à System.Collections.Generic.Queue<T> classe sem ter que 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 da 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 tipos de dados diferentes. 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
    

Consulte também