Freigeben über


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

  1. Rufen Sie für die Objektvariable die GetType-Methode auf, um ein System.Type-Objekt abzurufen.

    Dim myObject As Object
    myObject.GetType()
    
  2. 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 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.

    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.

Siehe auch