TypeOf-Operator (Visual Basic)
Vergleicht eine Objektverweisvariable mit einem Datentyp.
result = TypeOf objectexpression Is typename
Bestandteile
result
Zurückgegeben. Ein Boolean-Wert.objectexpression
Erforderlich. Ein Ausdruck, der als Verweistyp ausgewertet wird.typename
Erforderlich. Ein beliebiger Datentypname.
Hinweise
Der Operator TypeOf bestimmt, ob der Laufzeittyp von objectexpression mit typename kompatibel ist. Die Kompatibilität hängt von der Typkategorie von typename ab. In der folgenden Tabelle wird dargestellt, wie die Kompatibilität bestimmt wird.
Typkategorie von typename |
Kompatibilitätskriterium |
---|---|
Klasse |
objectexpression gehört zum Typ typename oder erbt von typename |
Struktur |
objectexpression ist vom Typ typename |
Interface |
objectexpression implementiert typename oder erbt von einer Klasse, die typename implementiert. |
Wenn der Laufzeittyp von objectexpression das Kompatibilitätskriterium erfüllt, hat result den Wert True. Andernfalls ist result False.
TypeOf wird stets mit dem Is-Schlüsselwort verwendet, wenn ein TypeOf...Is-Ausdruck konstruiert werden soll.
Beispiel
Im folgenden Beispiel werden TypeOf...Is-Ausdrücke verwendet, um die Typkompatibilität von zwei Objektverweisvariablen mit verschiedenen Datentypen zu testen.
Dim refInteger As Object = 2
MsgBox("TypeOf Object[Integer] Is Integer? " & TypeOf refInteger Is Integer)
MsgBox("TypeOf Object[Integer] Is Double? " & TypeOf refInteger Is Double)
Dim refForm As Object = New System.Windows.Forms.Form
MsgBox("TypeOf Object[Form] Is Form? " & TypeOf refForm Is System.Windows.Forms.Form)
MsgBox("TypeOf Object[Form] Is Label? " & TypeOf refForm Is System.Windows.Forms.Label)
MsgBox("TypeOf Object[Form] Is Control? " & TypeOf refForm Is System.Windows.Forms.Control)
MsgBox("TypeOf Object[Form] Is IComponent? " & TypeOf refForm Is System.ComponentModel.IComponent)
Die Variable refInteger gehört zum Laufzeittyp Integer. Sie ist mit Integer kompatibel, jedoch nicht mit Double. Die Variable refForm gehört zum Laufzeittyp Form. Sie ist mit Form kompatibel, da es sich um ihren eigenen Datentyp handelt, mit Control, da Form von Control erbt, und mit IComponent, da Form von Component erbt, womit IComponent implementiert wird. refForm ist dagegen nicht kompatibel mit Label.
Siehe auch
Referenz
Operatorrangfolge in Visual Basic
Operatoren sortiert nach Funktionalität (Visual Basic)