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.
Introduit une opération de conversion de type basée sur l’héritage ou l’implémentation.
Remarques
DirectCast
n’utilise pas les routines d’assistance au moment de l’exécution Visual Basic pour la conversion. Elle peut donc fournir des performances légèrement meilleures que CType
lors de la conversion vers et à partir du type Object
de données.
Vous utilisez le DirectCast
mot clé similaire à la façon dont vous utilisez la fonction CType et le mot clé TryCast Operator . Vous fournissez une expression en tant que premier argument et un type pour le convertir en tant que deuxième argument.
DirectCast
nécessite une relation d’héritage ou d’implémentation entre les types de données des deux arguments. Cela signifie qu’un type doit hériter ou implémenter l’autre.
Erreurs et échecs
DirectCast
génère une erreur du compilateur si elle détecte qu’aucune relation d’héritage ou d’implémentation n’existe. Mais l’absence d’erreur du compilateur ne garantit pas une conversion réussie. Si la conversion souhaitée est étroite, elle peut échouer au moment de l’exécution. Si cela se produit, le runtime lève une InvalidCastException erreur.
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, fonction | 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 |
DirectCast |
Tous les types de données | Un type doit hériter ou implémenter l’autre type | Jette InvalidCastException |
TryCast, opérateur | Types de référence uniquement | Un type doit hériter ou implémenter l’autre type | Renvoie Nothing |
Exemple :
L’exemple suivant illustre deux utilisations de , une qui échoue au moment de DirectCast
l’exécution et une qui réussit.
Dim q As Object = 2.37
Dim i As Integer = CType(q, Integer)
' The following conversion fails at run time
Dim j As Integer = DirectCast(q, Integer)
Dim f As New System.Windows.Forms.Form
Dim c As System.Windows.Forms.Control
' The following conversion succeeds.
c = DirectCast(f, System.Windows.Forms.Control)
Dans l’exemple précédent, le type d’exécution est q
Double
.
CType
réussit, car Double
il peut être converti en Integer
. Toutefois, la première DirectCast
échoue au moment de l’exécution, car le type d’exécution n’a Double
aucune relation d’héritage avec Integer
, même si une conversion existe. La seconde DirectCast
réussit, car elle se convertit de type en typeControlForm, à partir de laquelle Form hérite.