Object Data Type
Contiene gli indirizzi che fanno riferimento agli oggetti. È possibile assegnare qualsiasi tipo di riferimento (stringa, matrice, classe o interfaccia) a una variabile Object
. Una variabile Object
può anche fare riferimento ai dati di qualsiasi tipo di valore (numerico, Boolean
, Char
, Date
, struttura o enumerazione).
Osservazioni:
Il tipo di dati Object
può puntare ai dati di qualsiasi tipo, inclusa qualsiasi istanza dell'oggetto riconosciuta dall'applicazione. Usare Object
quando non si conosce in fase di compilazione il tipo di dati a cui potrebbe puntare la variabile.
Il valore predefinito di Object
è Nothing
(riferimento Null).
Tipi di dati
È possibile assegnare una variabile, una costante o un'espressione di qualsiasi tipo di dati a una variabile Object
. Per determinare il tipo di dati a cui fa attualmente riferimento una variabile Object
, è possibile usare il metodo GetTypeCode della classe System.Type. Ciò è illustrato nell'esempio seguente.
Dim myObject As Object
' Suppose myObject has now had something assigned to it.
Dim datTyp As Integer
datTyp = Type.GetTypeCode(myObject.GetType())
Il tipo di dati Object
è un tipo riferimento. Tuttavia, Visual Basic considera una variabile Object
come un tipo di valore quando fa riferimento ai dati di un tipo valore.
Storage
Indipendentemente dal tipo di dati a cui fa riferimento, una variabile Object
non contiene il valore di dati stesso, ma piuttosto un puntatore al valore. Usa sempre quattro byte nella memoria del computer, ma non include l'archiviazione per i dati che rappresentano il valore della variabile. A causa del codice che usa il puntatore per individuare i dati, le variabili Object
che contengono tipi valore sono leggermente più lente ad accedere rispetto alle variabili digitate in modo esplicito.
suggerimenti per la programmazione
Considerazioni sull'interoperabilità. Se si prevede l'interazione con componenti non scritti per .NET Framework, ad esempio oggetti COM o di automazione, tenere presente che i tipi di puntatore in altri ambienti non sono compatibili con il tipo
Object
di Visual Basic.Prestazioni. Una variabile dichiarata con il tipo
Object
è sufficientemente flessibile da contenere un riferimento a qualsiasi oggetto. Tuttavia, quando si richiama un metodo o una proprietà in tale variabile, si incorre sempre nel binding tardivo (in fase di esecuzione). Per forzare il binding anticipato (in fase di compilazione) e migliorare le prestazioni, dichiarare la variabile con un nome di classe specifico o eseguirne il cast al tipo di dati specifico.Quando si dichiara una variabile oggetto, provare a usare un tipo di classe specifico, ad esempio OperatingSystem, anziché il tipo generalizzato
Object
. È anche consigliabile usare la classe più specifica disponibile, ad esempio TextBox anziché Control, in modo da poter accedere alle relative proprietà e metodi. In genere è possibile usare l'elenco Classi nel Visualizzatore oggetti per trovare i nomi di classe disponibili.Ampliamento. Tutti i tipi di dati e tutti i tipi di riferimento si ampliano al tipo di dati
Object
. Ciò significa che è possibile convertire qualsiasi tipo inObject
senza riscontrare un errore System.OverflowException.Tuttavia, se si esegue la conversione tra tipi valore e
Object
, Visual Basic esegue operazioni denominate boxing e unboxing, che rallentano l'esecuzione.Caratteri tipo.
Object
non ha alcun carattere di tipo letterale o di tipo identificatore.Tipo di framework. Il tipo corrispondente in .NET Framework è la classe System.Object.
Esempio
Nell'esempio seguente viene illustrata una variabile Object
che punta a un'istanza dell'oggetto.
Dim objDb As Object
Dim myCollection As New Collection()
' Suppose myCollection has now been populated.
objDb = myCollection.Item(1)