TypeOf – operátor (Visual Basic)

Zkontroluje, jestli je typ modulu runtime výsledku výrazu kompatibilní se zadaným typem.

Syntaxe

result = TypeOf objectexpression Is typename  
result = TypeOf objectexpression IsNot typename  

Součástky

result
Vrácena. Hodnota Boolean .

objectexpression
Povinný: Libovolný výraz, který se vyhodnotí jako typ odkazu.

typename
Povinný: Libovolný název datového typu.

Poznámky

Operátor TypeOf určuje, zda je typ objectexpression běhu kompatibilní s typename. Kompatibilita závisí na kategorii typenametypu . Následující tabulka ukazuje, jak je určena kompatibilita.

Kategorie typu typename Kritérium kompatibility
Třída objectexpression je typu typename nebo dědí z typename
Struktura objectexpression je typu typename
Rozhraní objectexpression implementuje typename nebo dědí z třídy, která implementuje typename

Pokud typ objectexpression běhu splňuje kritérium kompatibility, result je True. result V opačném případě je False. Pokud objectexpression je null, vrátí TypeOf...Is a False...IsNot vrátí True.

TypeOf je vždy používán s klíčovým slovem Is k vytvoření výrazu TypeOf...Is nebo s IsNot klíčovým slovem k vytvoření výrazu TypeOf...IsNot .

Příklad

Následující příklad používá TypeOfvýrazy ...Is k otestování kompatibility typů dvou referenčních proměnných objektů s různými datovými typy.

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)

Proměnná refInteger má typ Integerběhu . Je kompatibilní s Integer , ale ne s Double. Proměnná refForm má typ Formběhu . Je kompatibilní s Form tím, že je jeho typ, s Control protože Form dědí z Control, a s IComponent protože Form dědí z Component, který implementuje IComponent. refForm Není však kompatibilní s Label.

Viz také