TypeOf – operátor (Visual Basic)

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

Syntax

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

Součásti

result
Vrácena. BooleanHodnota.

objectexpression
Povinná hodnota. Libovolný výraz, který se vyhodnotí jako odkazový typ.

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

Poznámky

Operátor TypeOf určuje, jestli je typ běhu kompatibilní objectexpression s typename . Kompatibilita závisí na kategorii typu typename . V následující tabulce je vidět, jak se určuje 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 běhu splňuje kritérium objectexpression kompatibility, result je True . V opačném result případě je False . Pokud objectexpression má hodnotu null, vrátí ... a TypeOf ... vrátí Is False IsNot True .

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

Příklad

Následující příklad používá výrazy ... k otestování kompatibility typů dvou proměnných odkazu na TypeOf Is 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 run-time Integer . Je kompatibilní s , Integer ale ne s Double . Proměnná refForm má typ run-time Form . Je kompatibilní s , protože je jeho typ, s , protože dědí z , a s , protože Form Control Form Control IComponent Form dědí z Component , který implementuje IComponent . Není však refForm kompatibilní s . Label

Viz také