Condividi tramite


Procedura: Usare una classe generica (Visual Basic)

Una classe che accetta parametri di tipo è denominata classe generica. Se si usa una classe generica, è possibile generare una classe costruita specificando un argomento di tipo per ognuno di questi parametri. È quindi possibile dichiarare una variabile del tipo di classe costruito ed è possibile creare un'istanza della classe costruita e assegnarla a tale variabile.

Oltre alle classi, è anche possibile definire e usare strutture generiche, interfacce, procedure e delegati.

La procedura seguente accetta una classe generica definita in .NET Framework e ne crea un'istanza.

Per usare una classe che accetta un parametro di tipo

  1. All'inizio del file di origine, includere un'istruzione Imports (.NET Namespace e Tipo) per importare lo spazio dei nomi System.Collections.Generic. In questo modo è possibile fare riferimento alla classe System.Collections.Generic.Queue<T> senza doverla qualificare completamente per distinguerla da altre classi di code, ad esempio, System.Collections.Queue.

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

    Nell'esempio seguente viene utilizzata la stessa classe (System.Collections.Generic.Queue<T>) per creare due oggetti coda che contengono elementi di tipi di dati diversi. Aggiunge elementi alla fine di ogni coda e quindi rimuove e visualizza gli elementi dalla parte anteriore 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
    

Vedere anche