Condividi tramite


Valori delle variabili oggetto (Visual Basic)

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

Funzioni del classificatore di oggetti

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

Funzione Restituisce True se la variabile Object fa riferimento a
IsArray Matrice di valori, anziché un singolo valore
IsDate Valore Tipo di dati Data o stringa che può essere interpretata 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 Nulla, 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.

Nell'esempio seguente viene usato TypeOf su variabili di oggetto che fanno riferimento a tipi di valore e di 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 num oggetto fa riferimento ai dati di tipo Integere frm fa riferimento a un oggetto della classe Form.

Matrici di oggetti

È possibile dichiarare e usare una matrice di Object variabili. 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, Object è possibile archiviare oggetti e istanze di classe insieme ad altri tipi di dati nella matrice.

Vedere anche