TypeOf, opérateur (Visual Basic)
Compare une variable référence d'objet à un type de données.
result = TypeOf objectexpression Is typename
Composants
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 du 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 d'exécution de objectexpression satisfait le critère de compatibilité, result est True.Sinon, result est False.
TypeOf est toujours utilisé avec le mot clé Is pour construire une expression TypeOf...Is.
Exemple
L'exemple suivant utilise des expressions TypeOf...Is pour tester la compatibilité du type de deux variables référence d'objet avec divers 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)
Le refInteger variable a un type d'exécution de Integer.Il est compatible avec Integer, mais pas avec Double.Le refForm variable a un type d'exécution de Form.Il est compatible avec Form, car il s'agit de son type, avec Control parce que Form hérite de Control, et avec IComponent parce que Form hérite de Componentqui implémente IComponent.Toutefois, refForm n'est pas compatible avec Label.
Voir aussi
Référence
Opérateur IsNot (Visual Basic)
Priorité des opérateurs en Visual Basic
Opérateurs répertoriés par fonctionnalité (Visual Basic)