Megosztás a következőn keresztül:


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 typenamefü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.

TypeOfA kulcsszóval Is mindig egy ...Is kifejezés létrehozásáhozTypeOf, vagy egy IsNot ...IsNot kifejezés létrehozásához TypeOfhasznált kulcsszóval használja.

Példa

Az alábbi példa ...Is kifejezéseket használ TypeOfké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ű Integertípusa. Kompatibilis a .IntegerDouble 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

Lásd még