Gewusst wie: Bestimmen des Typs, auf den eine Objektvariable verweist (Visual Basic)
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 die GetTypeCode-Methode jederzeit verwenden, um den aktuellen Laufzeittyp zu bestimmen, oder den TypeOf-Operator, um herauszufinden, ob der aktuelle Laufzeittyp mit einem angegebenen Typ kompatibel ist.
So bestimmen Sie den genauen Typ einer Objektvariable, auf den derzeit verwiesen wird
Rufen Sie für die Objektvariable die GetType-Methode auf, um ein System.Type-Objekt abzurufen.
Dim myObject As Object myObject.GetType()
Rufen Sie in der System.Type-Klasse die freigegebene GetTypeCode-Methode ab, um den TypeCode-Enumerationswert für den Objekttyp 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 gegen jedes beliebige Enumerationselement testen, z. B.
Double
.
So bestimmen Sie, ob der Typ einer Objektvariable mit einem angegebenen Typ kompatibel ist
Verwenden Sie den
TypeOf
-Operation zusammen mit dem Is-Operator, um das Objekt mit einemTypeOf
...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 gibtTrue
zurück, wenn der Laufzeittyp des Objekts mit dem angegebenen Typ kompatibel ist.Das Kriterium für die Kompatibilität hängt davon ab, ob der angegebene Typ eine Klasse, Struktur oder Schnittstelle ist. Im Allgemeinen sind die Typen kompatibel, wenn das Objekt vom gleichen Typ wie der angegebene Typ ist, von ihm erbt oder ihn implementiert. Weitere Informationen finden Sie unter TypeOf-Operator.
Kompilieren des Codes
Beachten Sie, dass der angegebene Typ keine Variable oder ein Ausdruck sein kann. Er muss der Name eines definierten Typs sein, z. B. eine Klasse, eine Struktur oder eine Schnittstelle. Dies umfasst systeminterne Typen wie Integer
und String
.