Freigeben über


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
Zurückgekehrt. Ein Boolean-Wert.

objectexpression
Erforderlich. Jeder Ausdruck, der zu einem Verweistyp ausgewertet wird.

typename
Erforderlich. Ein beliebiger Datentypname.

Bemerkungen

Der TypeOf Operator bestimmt, ob der Laufzeittyp objectexpression mit typename. Die Kompatibilität hängt von der Typkategorie von typename. 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 typename implementiert oder erbt von einer Klasse, die implementierttypename

Wenn der Laufzeittyp das objectexpression Kompatibilitätskriterium erfüllt, result lautet True. Andernfalls ist resultFalse. Wenn objectexpression null ist, TypeOfwird ...Is zurückgegeben False, und ...IsNot wird zurückgegeben True.

TypeOf wird immer mit dem Is Schlüsselwort verwendet, um einen TypeOf...Is -Ausdruck zu erstellen, oder mit dem IsNot Schlüsselwort, um einen TypeOf...IsNot -Ausdruck zu erstellen.

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 verfügt über einen Laufzeittyp von Integer. Es ist kompatibel mit Integer , aber nicht mit Double. Die Variable refForm verfügt über einen Laufzeittyp von Form. Es ist kompatibel mitForm, da dies der Typ ist, mit Control dem, weil Form er von Control, und mit IComponent dem, weil Form erbt IComponentvon Component, von dem implementiert wird. refForm Ist jedoch nicht kompatibel mit Label.

Siehe auch