Partager via


TypeOf, opérateur (Visual Basic)

Vérifie si le type d’exécution du résultat d’une expression est compatible avec le type spécifié.

Syntaxe

result = TypeOf objectexpression Is typename  
result = TypeOf objectexpression IsNot typename  

Pièces

result
Retourné. Valeur Boolean.

objectexpression
Obligatoire. Toute expression qui prend la valeur d’un type de référence.

typename
Obligatoire. N’importe quel nom de type de données.

Remarques

L’opérateur TypeOf détermine si le type d’exécution de objectexpression l’exécution est compatible avec typename. La compatibilité dépend de la catégorie de type de typename. Le tableau suivant montre comment la compatibilité est déterminée.

Catégorie de type de typename Critère de compatibilité
classe objectexpression est de type typename ou hérite de typename
Structure objectexpression de type typename
Interface objectexpression typename implémente ou hérite d’une classe qui implémentetypename

Si le type d’exécution satisfait au critère de objectexpression compatibilité, result est True. Sinon, result est False. Si objectexpression la valeur est null, alors TypeOf...Is retourne False, et ...IsNot renvoie True.

TypeOfest toujours utilisé avec le Is mot clé pour construire une TypeOfexpression ...Is ou avec le IsNot mot clé pour construire une TypeOfexpression ...IsNot

Exemple :

L’exemple suivant utilise TypeOfdes expressions ...Is pour tester la compatibilité de type de deux variables de référence d’objet avec différents types de données.

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)

La variable refInteger a un type d’exécution de Integer. Il est compatible avec Integer , mais pas avec Double. La variable refForm a un type d’exécution de Form. Il est compatible avec Form parce que c’est son type, avec Control parce que Form hérite , Controlet avec IComponent parce que Form hérite de Component, qui implémente IComponent. Toutefois, refForm n’est pas compatible avec Label.

Voir aussi