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.