Object Data Type

Enthält Adressen, die auf -Objekte verweisen. Sie können einer Variablen einen beliebigen Verweistyp (Zeichenfolge, Array, Klasse oder Schnittstelle) Object zuweisen. Eine Object Variable kann auch auf Daten eines beliebigen Werttyps (numeric, , , , structure oder Boolean Char Date enumeration) verweisen.

Bemerkungen

Der Object Datentyp kann auf Daten eines beliebigen Datentyps verweisen, einschließlich aller Objektinstanzen, die Ihre Anwendung erkennt. Verwenden Object Sie , wenn Sie zur Kompilierzeit nicht wissen, auf welchen Datentyp die Variable verweisen kann.

Der Standardwert von Object ist Nothing (ein NULL-Verweis).

Datentypen

Sie können einer Variablen eine Variable, eine Konstante oder einen Ausdruck eines beliebigen Datentyps Object zuweisen. Um den Datentyp zu bestimmen, auf den eine Object Variable derzeit verweist, können Sie die GetTypeCode -Methode der System.Type -Klasse verwenden. Dies wird anhand des folgenden Beispiels veranschaulicht.

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

Der Object Datentyp ist ein Verweistyp. Allerdings behandelt Visual Basic eine Object Variable als Werttyp, wenn sie auf Daten eines Werttyps verweist.

Storage

Auf welchen Datentyp es sich bezieht, eine Object Variable enthält nicht den Datenwert selbst, sondern einen Zeiger auf den Wert. Es werden immer vier Bytes im Computerspeicher verwendet, aber dies schließt nicht den Speicher für die Daten ein, die den Wert der Variablen darstellen. Aufgrund des Codes, der den Zeiger verwendet, um die Daten zu suchen, Object sind Variablen mit Werttypen etwas langsamer für den Zugriff als explizit typisierte Variablen.

Programmiertipps

  • Interop-Überlegungen. Wenn Sie komponentenübergreifend arbeiten, die nicht für die .NET Framework geschrieben wurden, z. B. Automation- oder COM-Objekte, denken Sie daran, dass Zeigertypen in anderen Umgebungen nicht mit dem typ Visual Basic kompatibel Object sind.

  • Leistung Eine Variable, die Sie mit dem Object -Typ deklarieren, ist flexibel genug, um einen Verweis auf ein beliebiges Objekt zu enthalten. Wenn Sie jedoch eine Methode oder Eigenschaft für eine solche Variable aufrufen, tritt immer eine späte Bindung (zur Laufzeit) auf. Um eine frühe Bindung (zur Kompilierzeit) und eine bessere Leistung zu erzwingen, deklarieren Sie die Variable mit einem bestimmten Klassennamen, oder wandeln Sie sie in den spezifischen Datentyp um.

    Wenn Sie eine Objektvariable deklarieren, versuchen Sie, anstelle des generalisierten Typs einen bestimmten Klassentyp zu verwenden, z. OperatingSystem Object B. . Sie sollten auch die spezifischste verfügbare Klasse verwenden, z. B. TextBox anstelle von , damit Sie auf ihre Eigenschaften und Methoden zugreifen Control können. Sie können in der Regel die Liste Klassen im Objektkatalog verwenden, um verfügbare Klassennamen zu suchen.

  • Erweiterung. Alle Datentypen und alle Verweistypen werden auf den Object Datentyp erweitert. Dies bedeutet, dass Sie jeden Typ in konvertieren können, Object ohne dass ein Fehler System.OverflowException auftritt.

    Wenn Sie jedoch zwischen Werttypen und konvertieren, Object führt Visual Basic Vorgänge wie Boxing und Unboxing aus, wodurch die Ausführung verlangsamt wird.

  • Geben Sie Zeichen ein. Object weist kein Literaltypzeichen oder Bezeichnertypzeichen auf.

  • Framework-Typ. Der entsprechende Typ im .NET Framework ist die System.Object -Klasse.

Beispiel

Das folgende Beispiel veranschaulicht eine Object Variable, die auf eine Objektinstanz zeigt.

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

Siehe auch