Valori di variabili oggetto (Visual Basic)

Una variabile del tipo di dati Object può fare riferimento ai dati di qualsiasi tipo. Il valore archiviato in una variabile Object viene mantenuto in un'altra posizione in memoria, mentre la variabile stessa contiene un puntatore ai dati.

Funzioni di classificazione oggetti

Visual Basic fornisce funzioni che restituiscono informazioni su ciò a cui fa riferimento una variabile Object, come illustrato nella tabella seguente.

Funzione Restituisce True se la variabile Object fa riferimento a
IsArray Matrice di valori, anziché un singolo valore
IsDate Un valore tipo di dati data o stringa che può essere interpretato come valore di data e ora
IsDBNull Oggetto di tipo DBNull, che rappresenta dati mancanti o inesistenti
IsError Oggetto eccezione, che deriva da Exception
IsNothing Nothing, ovvero nessun oggetto è attualmente assegnato alla variabile
IsNumeric Numero o stringa che può essere interpretata come numero
IsReference Tipo riferimento (ad esempio una stringa, una matrice, un delegato o un tipo di classe)

È possibile usare queste funzioni per evitare di inviare un valore non valido a un'operazione o a una routine.

Operatore TypeOf

È anche possibile utilizzare l'operatore TypeOf per determinare se una variabile oggetto attualmente fa riferimento a un tipo di dati specifico. L'espressione TypeOf...Is restituisce True se il tipo di runtime dell'operando è derivato o implementa il tipo specificato.

L'esempio seguente usa TypeOf sulle variabili oggetto che fanno riferimento a tipi valore e riferimento.

' The following statement puts a value type (Integer) in an Object variable.  
Dim num As Object = 10  
' The following statement puts a reference type (Form) in an Object variable.  
Dim frm As Object = New Form()  
If TypeOf num Is Long Then Debug.WriteLine("num is Long")  
If TypeOf num Is Integer Then Debug.WriteLine("num is Integer")  
If TypeOf num Is Short Then Debug.WriteLine("num is Short")  
If TypeOf num Is Object Then Debug.WriteLine("num is Object")  
If TypeOf frm Is Form Then Debug.WriteLine("frm is Form")  
If TypeOf frm Is Label Then Debug.WriteLine("frm is Label")  
If TypeOf frm Is Object Then Debug.WriteLine("frm is Object")  

L'esempio precedente scrive le righe seguenti nella finestra Debug:

num is Integer

num is Object

frm is Form

frm is Object

La variabile oggetto num fa riferimento ai dati di tipo Integer e frm fa riferimento a un oggetto della classe Form.

Matrici di oggetti

È possibile dichiarare e usare una matrice di variabili Object. Ciò è utile quando è necessario gestire un'ampia gamma di tipi di dati e classi di oggetti. Tutti gli elementi di una matrice devono avere lo stesso tipo di dati dichiarato. Dichiarando questo tipo di dati come Object è possibile archiviare oggetti e istanze di classe insieme ad altri tipi di dati nella matrice.

Vedi anche