Gewusst wie: Bestimmen des Typs, auf den eine Objektvariable verweist
Aktualisiert: November 2007
Eine Objektvariable enthält einen Zeiger auf Daten, die an anderer Stelle gespeichert sind. Der Typ dieser Daten kann sich während der Laufzeit ändern. Sie können jederzeit die GetTypeCode-Methode verwenden, um den aktuellen Laufzeittyp zu ermitteln, oder den TypeOf-Operator (Visual Basic), um festzustellen, ob der aktuelle Laufzeittyp mit einem angegebenen Typ kompatibel ist.
So bestimmen Sie den Typ, auf den eine Objektvariable derzeit verweist
Rufen Sie für die Objektvariable die GetType-Methode auf, um ein System.Type-Objekt abzurufen.
Dim myObject As Object myObject.GetType()
Rufen Sie für die System.Type-Klasse die freigegebene GetTypeCode-Methode auf, um den TypeCode-Enumerationswert für den Typ des Objekts abzurufen.
Dim myObject As Object Dim datTyp As Integer = Type.GetTypeCode(myObject.GetType()) MsgBox("myObject currently has type code " & CStr(datTyp))
Sie können den TypeCode-Enumerationswert für alle relevanten Enumerationsmember testen, beispielsweise den Wert Double.
So stellen Sie fest, ob der Typ einer Objektvariablen mit einem angegebenen Typ kompatibel ist
Verwenden Sie den TypeOf-Operator zusammen mit dem Is-Operator (Visual Basic), um das Objekt mit einem TypeOf...Is-Ausdruck zu testen.
If TypeOf objA Is System.Windows.Forms.Control Then MsgBox("objA is compatible with the Control class") End If
Der TypeOf...Is-Ausdruck gibt True zurück, wenn der Laufzeittyp des Objekts mit dem angegebenen Typ kompatibel ist.
Entscheidend für die Kompatibilität ist, ob es sich bei dem angegebenen Typ um eine Klasse, Struktur oder Schnittstelle handelt. Die Typen sind im Allgemeinen kompatibel, wenn das Objekt zum gleichen Typ gehört wie der angegebene Typ, wenn es von dem angegebenen Typ erbt oder den angegebenen Typ implementiert. Weitere Informationen finden Sie unter TypeOf-Operator (Visual Basic).
Kompilieren des Codes
Bei dem angegebenen Typ kann es sich nicht um eine Variable oder einen Ausdruck handeln. Es muss sich um den Namen eines definierten Typs handeln, z. B. um eine Klasse, Struktur oder Schnittstelle. Hierzu gehören systeminterne Typen wie Integer und String.
Siehe auch
Konzepte
Objektvariablen in Visual Basic