TypeOf-operator (Visual Basic)
Kontrollerar om körningstypen för ett uttrycks resultat är typkompatibel med den angivna typen.
Syntax
result = TypeOf objectexpression Is typename
result = TypeOf objectexpression IsNot typename
Delar
result
Returneras. Ett Boolean
värde.
objectexpression
Obligatoriska. Alla uttryck som utvärderas till en referenstyp.
typename
Obligatoriska. Alla namn på datatyper.
Kommentarer
Operatorn TypeOf
avgör om körningstypen objectexpression
är kompatibel med typename
. Kompatibiliteten beror på typkategorin typename
för . I följande tabell visas hur kompatibiliteten bestäms.
Typkategori för typename |
Kompatibilitetsvillkor |
---|---|
Klass | objectexpression är av typen typename eller ärver från typename |
Struktur | objectexpression är av typen typename |
Gränssnitt | objectexpression implementerar typename eller ärver från en klass som implementerar typename |
Om körningstypen objectexpression
uppfyller kompatibilitetskriteriet result
är True
. Annars result
är False
. Om objectexpression
är null TypeOf
returnerar False
...Is
, och ...IsNot
returnerar True
.
TypeOf
används alltid med nyckelordet Is
för att konstruera ett TypeOf
...Is
uttryck, eller med nyckelordet IsNot
för att konstruera ett TypeOf
...IsNot
uttryck.
Exempel
I följande exempel används TypeOf
...Is
uttryck för att testa typkompatibiliteten för två objektreferensvariabler med olika datatyper.
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)
Variabeln refInteger
har en körningstyp av Integer
. Det är kompatibelt med Integer
men inte med Double
. Variabeln refForm
har en körningstyp av Form. Det är kompatibelt med Form eftersom det är dess typ, med Control eftersom Form ärver från Control, och med IComponent eftersom Form ärver från Component, som implementerar IComponent. Är dock refForm
inte kompatibelt med Label.