Procedura: utilizzare una classe generica (Visual Basic)

Una classe che accetta parametri di tipo è chiamato classe generica. Se si usa una classe generica, è possibile generare una classe costruita da essa fornendo un argomento di tipo per ciascuno di questi parametri. È possibile quindi dichiarare una variabile del tipo di classe costruita, creare un'istanza della classe costruita e assegnarla alla variabile.

Oltre alle classi, è possibile definire e usare anche strutture, interfacce, routine e delegati generici.

La routine seguente accetta una classe generica definita in .NET Framework e crea un'istanza da essa.

Per usare una classe che accetta un parametro di tipo

  1. All'inizio del file di origine includere un'istruzione Imports (tipo e spazio dei nomi .NET) per importare lo spazio dei nomi System.Collections.Generic. In questo modo è possibile fare riferimento alla classe System.Collections.Generic.Queue<T> senza doverla specificare completamente per differenziarla da altre classi queue come System.Collections.Queue.

  2. Creare l'oggetto in modo normale, ma aggiungere (Of type) immediatamente dopo il nome della classe.

    L'esempio seguente usa la stessa classe (System.Collections.Generic.Queue<T>) per creare due oggetti queue che contengono elementi con tipi di dati diversi. Aggiunge gli elementi alla fine di ogni coda e quindi rimuove e visualizza gli elementi dall'inizio di ogni coda.

    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
    

Vedi anche