Ricerca…


Crea una classe generica

Viene creato un tipo generico per adattarsi in modo che la stessa funzionalità possa essere accessibile per diversi tipi di dati.

Public Class SomeClass(Of T)
    Public Sub doSomething(newItem As T)
        Dim tempItem As T
        ' Insert code that processes an item of data type t.
    End Sub
End Class

Istanza di una classe generica

Creando un'istanza della stessa classe con un tipo diverso, l'interfaccia della classe cambia a seconda del tipo specificato.

Dim theStringClass As New SomeClass(Of String)
Dim theIntegerClass As New SomeClass(Of Integer)

inserisci la descrizione dell'immagine qui

Definire una classe 'generica'

Una classe generica è una classe che si adatta a un tipo successivo in modo che la stessa funzionalità possa essere offerta a tipi diversi.

In questo esempio di base viene creata una classe generica. Ha un sottotitolo che usa il tipo generico T. Durante la programmazione di questa classe, non conosciamo il tipo di T. In questo caso T ha tutte le caratteristiche dell'oggetto.

Public Class SomeClass(Of T)
    Public Sub doSomething(newItem As T)
        Dim tempItem As T
        ' Insert code that processes an item of data type t.
    End Sub
End Class

Utilizzare una classe generica

In questo esempio sono state create 2 istanze della classe SomeClass. A seconda del tipo dato le 2 istanze hanno un'interfaccia diversa:

Dim theStringClass As New SomeClass(Of String)
Dim theIntegerClass As New SomeClass(Of Integer)

inserisci la descrizione dell'immagine qui inserisci la descrizione dell'immagine qui

La classe generica più famosa è Lista (di)

Limita i tipi possibili dati

I tipi possibili passati a una nuova istanza di SomeClass devono ereditare SomeBaseClass. Questa può anche essere un'interfaccia. Le caratteristiche di SomeBaseClass sono accessibili all'interno di questa definizione di classe.

Public Class SomeClass(Of T As SomeBaseClass)
    Public Sub DoSomething(newItem As T)
        newItem.DoSomethingElse()
        ' Insert code that processes an item of data type t.
    End Sub
End Class

Public Class SomeBaseClass
    Public Sub DoSomethingElse()
    End Sub
End Class

Crea una nuova istanza del tipo specificato

La creazione di una nuova intanza di un tipo generico può essere eseguita / checed in fase di compilazione.

Public Class SomeClass(Of T As {New})
    Public Function GetInstance() As T
        Return New T
    End Function
End Class

O con tipi limitati:

Public Class SomeClass(Of T As {New, SomeBaseClass})
    Public Function GetInstance() As T
        Return New T
    End Function
End Class

Public Class SomeBaseClass
End Class

La baseClass (se non è stata assegnata alcuna Object) deve avere un parametro meno costruttore.

Questo può essere fatto anche in fase di esecuzione attraverso la riflessione



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow