TypeOf operátor (Visual Basic)
Ellenőrzi, hogy a kifejezés eredményének futtatókörnyezet-típusa típuskompatibilis-e a megadott típussal.
Syntax
result = TypeOf objectexpression Is typename
result = TypeOf objectexpression IsNot typename
Részek
result
Vissza. Egy Boolean
érték.
objectexpression
Szükséges. Bármely kifejezés, amely hivatkozástípusra értékel.
typename
Szükséges. Bármilyen adattípus neve.
Megjegyzések
Az TypeOf
operátor meghatározza, hogy a futásidejű objectexpression
típus kompatibilis-e a következővel typename
: . A kompatibilitás a típuskategóriától typename
függ. Az alábbi táblázat bemutatja, hogyan határozható meg a kompatibilitás.
Típuskategória typename |
Kompatibilitási feltétel |
---|---|
Osztály | objectexpression típus typename vagy öröklődik a typename |
Struktúra | objectexpression típusa typename |
Interfész | objectexpression implementál typename vagy örököl egy olyan osztályt, amely implementálja typename |
Ha a futásidejű objectexpression
típus megfelel a kompatibilitási feltételnek, result
akkor a következő: True
. result
Ellenkező esetben az .False
Ha objectexpression
null, akkor TypeOf
...Is
visszaadja False
, és ...IsNot
visszaadja True
.
TypeOf
A kulcsszóval Is
mindig egy ...Is
kifejezés létrehozásáhozTypeOf
, vagy egy IsNot
...IsNot
kifejezés létrehozásához TypeOf
használt kulcsszóval használja.
Példa
Az alábbi példa ...Is
kifejezéseket használ TypeOf
két objektumhivatkozási változó típuskompatibilitásának teszteléséhez különböző adattípusokkal.
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)
A változó refInteger
futásidejű Integer
típusa. Kompatibilis a .Integer
Double
A változó refForm
futásidejű Formtípusa. Ez azért kompatibilis Form , mert ez a típusa, mivel ControlForm örökli az Control, és mivel IComponentForm örökli a Component, amely implementálja IComponent. refForm
Azonban nem kompatibilis a .Label