Fonction CType (Visual Basic)

Retourne le résultat de la conversion explicite d’une expression en type de données, objet, structure, classe ou interface spécifié.

Syntaxe

CType(expression, typename)

Éléments

expression Toute expression valide. Si la valeur de expression est en dehors de la plage autorisée par typename, Visual Basic lève une exception.

typename Toute expression légale dans une clause As d’une instruction Dim, autrement dit, le nom d’un type de données, d’un objet, d’une structure, d’une classe ou d’une interface.

Notes

Conseil

Vous pouvez également utiliser les fonctions suivantes pour effectuer une conversion de type :

  • Fonctions de conversion de type telles que CByte, CDbl et CInt qui effectuent une conversion vers un type de données spécifique. Pour plus d'informations, consultez Fonctions de conversion de types de données.
  • Opérateur DirectCast ou Opérateur TryCast. Ces opérateurs nécessitent qu’un type hérite ou implémente l’autre type. Ils peuvent fournir de meilleures performances que CType lors de la conversion vers et à partir du type de données Object.

CType est compilé inclus, ce qui signifie que le code de conversion fait partie du code qui évalue l’expression. Dans certains cas, le code s’exécute plus rapidement, car aucune procédure n’est appelée pour effectuer la conversion.

Si aucune conversion n’est définie de expression à typename (par exemple, de Integer à Date), Visual Basic affiche un message d’erreur au moment de la compilation.

Si une conversion échoue au moment de l’exécution, l’exception appropriée est levée. Si une conversion étroite échoue, un OverflowException est le résultat le plus courant. Si la conversion n’est pas définie, un InvalidCastException est levé. Par exemple, cela peut se produire si expression est du type Object et son type d’exécution n’a pas de conversion en typename.

Si le type de données de type expression ou typename est une classe ou structure que vous avez définie, vous pouvez définir CType sur cette classe ou cette structure en tant qu’opérateur de conversion. Par conséquent, CType fait office d’opérateur surchargé. Si vous effectuez cette opération, vous pouvez contrôler le comportement des conversions vers et depuis votre classe ou structure, y compris les exceptions pouvant être levées.

Mots clés de conversion

Voici une comparaison des mots-clés de conversion de type.

Mot clé Types de données Relation d’argument Échec de l’exécution
CType Tous les types de données La conversion d’élargissement ou de réduction doit être définie entre les deux types de données Lève InvalidCastException
DirectCast, opérateur Tous les types de données Un type doit hériter ou implémenter l’autre type Lève InvalidCastException
TryCast Types de référence uniquement Un type doit hériter ou implémenter l’autre type Renvoie Nothing

Surcharge

L’opérateur CType peut également être surchargé sur une classe ou une structure définie en dehors de votre code. Si votre code se convertit en ou à partir d’une telle classe ou structure, veillez à comprendre le comportement de son opérateur CType. Pour plus d'informations, consultez Operator Procedures.

Conversion d’objets dynamiques

Les conversions de type d’objets dynamiques sont effectuées par des conversions dynamiques définies par l’utilisateur qui utilisent les méthodes TryConvert ou BindConvert. Si vous utilisez des objets dynamiques, utilisez la méthode CTypeDynamic pour convertir l’objet dynamique.

Exemple

L’exemple suivant utilise la fonction CType pour convertir une expression en type de données Single.

Dim testNumber As Long = 1000
' The following line of code sets testNewType to 1000.0.
Dim testNewType As Single = CType(testNumber, Single)

Pour obtenir d’autres exemples, consultez Conversions implicites et explicites.

Voir aussi