Dela via


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 typenamefö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 TypeOfreturnerar 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.

Se även