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  

Éléments

result
Retourné. Valeur Boolean.

objectexpression
Obligatoire. Toute expression ayant pour résultat un type référence.

typename
Obligatoire. Tout nom de type de données.

Notes

L'opérateur TypeOf détermine si le type d'exécution de objectexpression est compatible avec typename. La compatibilité dépend de la catégorie du type de typename. Le tableau suivant illustre la manière dont 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 est de type typename
Interface objectexpression implémente typename ou hérite d'une classe qui implémente typename

Si le type de l'exécution de objectexpression satisfait le critère de compatibilité, result est True. Sinon, result est False. Si objectexpression est null, alors TypeOf...Is retourne False, et ...IsNot retourne True.

TypeOf est toujours utilisé avec le mot clé Is pour construire une expression TypeOf...Is, ou avec le mot clé IsNot pour construire une expression TypeOf...IsNot.

Exemple

L'exemple suivant utilise des expressions TypeOf...Is pour tester la compatibilité du 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 au moment de l'exécution de Integer. Il est compatible avec Integer mais pas avec Double. La variable refForm a un type au moment de l'exécution de Form. Il est compatible avec Form car il s'agit de son type, avec Control car Form hérite de Control, et avec IComponent car Form hérite de Component, qui implémente IComponent. Toutefois, refForm n'est pas compatible avec Label.

Voir aussi