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 Integer
och 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
- Objektvariabler
- Deklaration av objektvariabel
- Tilldelning av objektvariabel
- Anvisningar: Referera till den aktuella instansen av ett objekt
- Anvisningar: Fastställa vilken typ en objektvariabel refererar till
- Så här gör du: Avgöra om två objekt är relaterade
- Anvisningar: Avgöra om två objekt är identiska
- Datatyper