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