Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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)
Pièces
expression
Toute expression valide. Si la valeur de la plage est en dehors de expression
la plage autorisée par typename
, Visual Basic lève une exception.
typename
Toute expression légale dans une clause d’une instruction, autrement dit, le nom d’un type de données, d’un objet, d’une structure, d’une As
classe ou d’une Dim
interface.
Remarques
Conseil / Astuce
Vous pouvez également utiliser les fonctions suivantes pour effectuer une conversion de type :
- Fonctions de conversion de type telles que
CByte
,CDbl
etCInt
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 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 duObject
type de données.
CType
est compilé inline, 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 à partir de expression
(par exemple, à partir de Integer
), Date
Visual Basic affiche un message d’erreur au moment de la typename
compilation.
Si une conversion échoue au moment de l’exécution, l’exception appropriée est levée. Si une conversion étroite échoue, il OverflowException s’agit du résultat le plus courant. Si la conversion n’est pas définie, une InvalidCastException valeur levée est levée. Par exemple, cela peut se produire s’il expression
s’agit d’un type Object
et son type d’exécution n’a pas de conversion en typename
.
Si le type de données d’une expression
classe ou typename
d’une structure que vous avez définie, vous pouvez définir CType
sur cette classe ou cette structure en tant qu’opérateur de conversion. Cela fait CType
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
Une comparaison des mots clés de conversion de type est la suivante.
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 | Jette InvalidCastException |
Opérateur DirectCast | Tous les types de données | Un type doit hériter ou implémenter l’autre type | Jette 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 CType
opérateur. Pour plus d’informations, consultez Procédures d’opérateur.
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 ou BindConvert les TryConvert méthodes. Si vous utilisez des objets dynamiques, utilisez la CTypeDynamic méthode pour convertir l’objet dynamique.
Exemple :
L’exemple suivant utilise la CType
fonction pour convertir une expression en type de Single
données.
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.