Objektdatatyp
Innehåller adresser som refererar till objekt. Du kan tilldela valfri referenstyp (sträng, matris, klass eller gränssnitt) till en Object
variabel. En Object
variabel kan också referera till data av valfri värdetyp (numerisk, Boolean
, Char
, Date
, struktur eller uppräkning).
Kommentarer
Datatypen Object
kan peka på data av vilken datatyp som helst, inklusive alla objektinstanser som programmet känner igen. Använd Object
när du inte vet vid kompileringstillfället vilken datatyp variabeln kan peka på.
Standardvärdet Object
för är Nothing
(en null-referens).
Datatyper
Du kan tilldela en variabel, konstant eller ett uttryck av valfri datatyp till en Object
variabel. Om du vill fastställa vilken datatyp en Object
variabel för närvarande refererar till kan du använda GetTypeCode -metoden för System.Type klassen. I följande exempel visas detta.
Dim myObject As Object
' Suppose myObject has now had something assigned to it.
Dim datTyp As Integer
datTyp = Type.GetTypeCode(myObject.GetType())
Datatypen Object
är en referenstyp. Visual Basic behandlar dock en Object
variabel som en värdetyp när den refererar till data av en värdetyp.
Storage
Oavsett vilken datatyp den refererar till innehåller en Object
variabel inte själva datavärdet, utan snarare en pekare till värdet. Den använder alltid fyra byte i datorminnet, men det inkluderar inte lagringen för data som representerar variabelns värde. På grund av den kod som använder pekaren för att hitta data är Object
variabler som innehåller värdetyper något långsammare att komma åt än variabler som uttryckligen anges.
Programmeringstips
Interop-överväganden. Om du interagerar med komponenter som inte är skrivna för .NET Framework, till exempel Automation- eller COM-objekt, bör du tänka på att pekartyper i andra miljöer inte är kompatibla med Visual Basic-typen
Object
.Prestanda. En variabel som du deklarerar med
Object
typen är tillräckligt flexibel för att innehålla en referens till alla objekt. Men när du anropar en metod eller egenskap för en sådan variabel får du alltid sen bindning (vid körning). Om du vill framtvinga tidig bindning (vid kompileringstid) och bättre prestanda deklarerar du variabeln med ett specifikt klassnamn eller omvandlar den till den specifika datatypen.När du deklarerar en objektvariabel kan du försöka använda en viss klasstyp, till exempel OperatingSystemi stället för den generaliserade
Object
typen. Du bör också använda den mest specifika klassen som är tillgänglig, till exempel TextBox i stället för Control, så att du kan komma åt dess egenskaper och metoder. Du kan vanligtvis använda listan Klasser i Object Browser för att hitta tillgängliga klassnamn.Breddning. Alla datatyper och alla referenstyper utvidgas
Object
till datatypen. Det innebär att du kan konvertera vilken typ som helst tillObject
utan att det uppstår något System.OverflowException fel.Men om du konverterar mellan värdetyper och
Object
utför Visual Basic åtgärder som kallas boxning och avboxning, vilket gör körningen långsammare.Skriv tecken.
Object
har inget tecken av typen literal eller identifierartyp.Ramverkstyp. Motsvarande typ i .NET Framework är System.Object klassen .
Exempel
I följande exempel visas en Object
variabel som pekar på en objektinstans.
Dim objDb As Object
Dim myCollection As New Collection()
' Suppose myCollection has now been populated.
objDb = myCollection.Item(1)