TypeOf-Operator (Visual Basic)
Überprüft, ob der Laufzeittyp des Ergebnisses eines Ausdrucks mit dem angegebenen Typ typkompatibel ist.
Syntax
result = TypeOf objectexpression Is typename
result = TypeOf objectexpression IsNot typename
Bestandteile
result
Wird zurückgegeben. Ein Boolean
-Wert.
objectexpression
Erforderlich. Jeder Ausdruck, der als ein Verweistyp ausgewertet wird.
typename
Erforderlich. Ein beliebiger Datentypname.
Bemerkungen
Der TypeOf
-Operator bestimmt, ob der Laufzeittyp von objectexpression
mit typename
kompatibel ist. Die Kompatibilität hängt von der Typkategorie von typename
ab. Die folgende Tabelle zeigt, wie die Kompatibilität bestimmt wird.
Typkategorie von typename |
Kompatibilitätskriterium |
---|---|
Klasse | objectexpression ist vom Typ typename oder erbt von typename |
Struktur | objectexpression ist vom Typ typename |
Schnittstelle | objectexpression implementiert typename oder erbt von einer Klasse, die typename implementiert |
Wenn der Laufzeittyp von objectexpression
das Kompatibilitätskriterium erfüllt, ist result
True
. Andernfalls lautet result
False
. Wenn objectexpression
null ist, dann gibt TypeOf
...Is
False
zurück, und ...IsNot
gibt True
zurück.
TypeOf
wird immer mit dem Schlüsselwort Is
verwendet, um einen TypeOf
...Is
-Ausdruck zu erstellen, oder mit dem Schlüsselwort IsNot
, um einen TypeOf
...IsNot
-Ausdruck zu erstellen.
Beispiel
Im folgenden Beispiel werden TypeOf
...Is
-Ausdrücke zum Testen der Typkompatibilität von zwei Objektverweisvariablen mit verschiedenen Datentypen verwendet.
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
verfügt über einen Laufzeittyp von Integer
. Sie ist mit Integer
, jedoch nicht mit Double
kompatibel. Die Variable refForm
verfügt über einen Laufzeittyp von Form. Sie ist mit Form kompatibel, da es sich hierbei um ihren Typ handelt, sowie mit Control, da Form von Control erbt, und mit IComponent, da Form von Component erbt, welche wiederum IComponent implementiert. refForm
ist jedoch mit Label nicht kompatibel.