Condividi tramite


Procedura: utilizzare una classe generica

Aggiornamento: novembre 2007

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

Oltre alle classi, è inoltre possibile definire e utilizzare strutture, interfacce, routine e delegati generici.

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

Per utilizzare una classe che accetta un parametro di tipo

  1. All'inizio del file di origine, includere 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 qualificare completamente per differenziarla da altre classi Queue, ad esempio System.Collections.Queue.

  2. Creare l'oggetto come di consueto, 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 tipo dati diverso. La classe aggiunge elementi alla fine di ciascuna coda e quindi rimuove e visualizza elementi dall'inizio di ciascuna 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

Attività

Procedura: definire una classe in grado di fornire funzionalità identiche con tipi di dati diversi

Concetti

Tipi di dati in Visual Basic

Tipi generici in Visual Basic

Specifiche CLS (Common Language Specification)

Riferimenti

Of

Istruzione Imports (tipo e spazio dei nomi .NET)