Dela via


Objektvariabelvärden (Visual Basic)

En variabel av objektdatatypen kan referera till data av vilken typ som helst. Värdet som du lagrar i en Object variabel sparas någon annanstans i minnet, medan själva variabeln innehåller en pekare till data.

Objektklassificerarens funktioner

Visual Basic tillhandahåller funktioner som returnerar information om vad en Object variabel refererar till, enligt följande tabell.

Funktion Returnerar Sant om objektvariabeln refererar till
IsArray En matris med värden i stället för ett enda värde
IsDate Ett värde för datumdatatyp eller en sträng som kan tolkas som ett datum- och tidsvärde
IsDBNull Ett objekt av typen DBNull, som representerar saknade eller obefintliga data
IsError Ett undantagsobjekt som härleds från Exception
IsNothing Ingenting, det vill: inget objekt har för närvarande tilldelats variabeln
IsNumeric Ett tal eller en sträng som kan tolkas som ett tal
IsReference En referenstyp (till exempel en sträng, matris, ombud eller klasstyp)

Du kan använda dessa funktioner för att undvika att skicka ett ogiltigt värde till en åtgärd eller en procedur.

TypeOf-operator

Du kan också använda TypeOf-operatorn för att avgöra om en objektvariabel för närvarande refererar till en viss datatyp. Uttrycket TypeOf...Is utvärderas till True om körningstypen för operanden härleds från eller implementerar den angivna typen.

I följande exempel används TypeOf objektvariabler som refererar till värde- och referenstyper.

' 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")  

I föregående exempel skrivs följande rader till felsökningsfönstret:

num is Integer

num is Object

frm is Form

frm is Object

Objektvariabeln num refererar till data av typen Integeroch frm refererar till ett objekt av klassen Form.

Objektmatriser

Du kan deklarera och använda en matris med Object variabler. Detta är användbart när du behöver hantera en mängd olika datatyper och objektklasser. Alla element i en matris måste ha samma deklarerade datatyp. Om du deklarerar den här datatypen så Object kan du lagra objekt och klassinstanser tillsammans med andra datatyper i matrisen.

Se även