Share via


Objectgegevenstype

Bevat adressen die verwijzen naar objecten. U kunt elk verwijzingstype (tekenreeks, matrix, klasse of interface) toewijzen aan een Object variabele. Een Object variabele kan ook verwijzen naar gegevens van elk waardetype (numeriek, Boolean, Char, , Datestructuur of opsomming).

Opmerkingen

Het Object gegevenstype kan verwijzen naar gegevens van elk gegevenstype, inclusief een objectexemplaren die door uw toepassing worden herkend. Gebruik Object deze functie wanneer u tijdens het compileren niet weet naar welk gegevenstype de variabele kan verwijzen.

De standaardwaarde Object is Nothing (een null-verwijzing).

Gegevenstypen

U kunt een variabele, constante of expressie van elk gegevenstype toewijzen aan een Object variabele. Als u wilt bepalen welk gegevenstype een Object variabele momenteel verwijst, kunt u de GetTypeCode methode van de System.Type klasse gebruiken. In het volgende voorbeeld ziet u dit.

Dim myObject As Object
' Suppose myObject has now had something assigned to it.
Dim datTyp As Integer
datTyp = Type.GetTypeCode(myObject.GetType())

Het Object gegevenstype is een verwijzingstype. Visual Basic behandelt een Object variabele echter als een waardetype wanneer deze verwijst naar gegevens van een waardetype.

Storage

Welk gegevenstype het ook verwijst, een Object variabele bevat niet de gegevenswaarde zelf, maar een aanwijzer naar de waarde. Er worden altijd vier bytes in het computergeheugen gebruikt, maar dit omvat niet de opslag voor de gegevens die de waarde van de variabele vertegenwoordigen. Vanwege de code die de aanwijzer gebruikt om de gegevens te vinden, Object zijn variabelen met waardetypen iets trager dan expliciet getypte variabelen.

Programmeertips

  • Overwegingen voor interoperabiliteit. Als u met onderdelen werkt die niet zijn geschreven voor .NET Framework, bijvoorbeeld Automation- of COM-objecten, moet u er rekening mee houden dat aanwijzertypen in andere omgevingen niet compatibel zijn met het Visual Basic-type Object .

  • Prestaties. Een variabele die u met het Object type declareert, is flexibel genoeg om een verwijzing naar een willekeurig object te bevatten. Wanneer u echter een methode of eigenschap voor een dergelijke variabele aanroept, worden er altijd late bindingen (tijdens runtime) aangeroepen. Als u vroege binding (tijdens het compileren) en betere prestaties wilt afdwingen, declareert u de variabele met een specifieke klassenaam of castt u deze naar het specifieke gegevenstype.

    Wanneer u een objectvariabele declareert, probeert u bijvoorbeeld een specifiek klassetype OperatingSystemte gebruiken in plaats van het gegeneraliseerde Object type. U moet ook de meest specifieke klasse gebruiken die beschikbaar is, zoals TextBox in plaats van Control, zodat u toegang hebt tot de eigenschappen en methoden. U kunt meestal de lijst Klassen in de objectbrowser gebruiken om beschikbare klassenamen te vinden.

  • Verbreding. Alle gegevenstypen en alle verwijzingstypen worden breder naar het Object gegevenstype. Dit betekent dat u elk type kunt converteren naar Object zonder dat er een System.OverflowException fout optreedt.

    Als u echter converteert tussen waardetypen enObject, voert Visual Basic bewerkingen uit die boksen en uitpakken worden genoemd, waardoor de uitvoering langzamer wordt.

  • Typ tekens. Object heeft geen letterlijk type teken of id-type teken.

  • Type framework. Het bijbehorende type in .NET Framework is de System.Object klasse.

Opmerking

In het volgende voorbeeld ziet u een Object variabele die verwijst naar een objectexemplaren.

Dim objDb As Object
Dim myCollection As New Collection()
' Suppose myCollection has now been populated.
objDb = myCollection.Item(1)

Zie ook