Cómo: Usar clases genéricas (Visual Basic)

Las clases que toman parámetros de tipo se denominan clases genéricas. Si usa una clase genérica, puede generar una clase construida a partir de ella proporcionando un argumento de tipo para cada uno de estos parámetros. Después, puede declarar una variable del tipo de clase construida, crear una instancia de la clase construida y asignarla a esa variable.

Además de clases, también puede definir y usar estructuras genéricas, interfaces, procedimientos y delegados.

En el procedimiento siguiente se toma una clase genérica definida en .NET Framework y se crea una instancia a partir de ella.

Para usar una clase que toma un parámetro de tipo

  1. Al principio de su archivo de origen, incluya una instrucción Imports (Tipo y espacio de nombres de .NET) para importar el espacio de nombres System.Collections.Generic. Esto le permite hacer referencia a la clase System.Collections.Generic.Queue<T> sin tener que usar su nombre completo para diferenciarla de otras clases queue, como System.Collections.Queue.

  2. Cree el objeto de la manera normal, pero agregue (Of type) inmediatamente después del nombre de clase.

    En el ejemplo siguiente se usa la misma clase (System.Collections.Generic.Queue<T>) para crear dos objetos queue que contienen elementos de distintos tipos de datos. Agrega elementos al final de cada cola y, después, quita y muestra los elementos de la parte delantera de cada cola.

    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 también