Exporter (0) Imprimer
Développer tout
3 sur 4 ont trouvé cela utile - Évaluez ce sujet

DirectCast

Introduit une opération de conversion de type basée sur l'héritage ou l'implémentation.

DirectCast n'utilise pas les routines d'assistance d'exécution Visual Basic pour la conversion, par conséquent, il peut en quelque sorte donner de meilleures performances que CType lors de la conversion vers et à partir du type de données Object.

Utilisez le mot clé DirectCast de la même façon que si vous utilisiez les mots clés CType et TryCast. Fournissez une expression comme premier argument et un type pour la convertir comme deuxième argument. DirectCast requiert 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 de l'autre ou l'implémenter.

Erreurs et échecs

DirectCast génère une erreur du compilateur s'il détecte qu'il n'y a aucune relation d'héritage ou d'implémentation. Cependant, l'absence d'erreur du compilateur ne garantit pas une conversion réussie. Si la conversion souhaitée est restrictive, elle peut échouer au moment de l'exécution. Le cas échéant, l'exécution lève une erreur InvalidCastException.

Mots clés de conversion

Une comparaison des mots clés de conversion de type se présente comme suit.

Mot clé Types de données Relation d'argument Échec lors de l'exécution

CType, fonction

Tout type de données

Une conversion étendue ou restrictive doit être définie entre les deux types de données

Lève InvalidCastException

DirectCast

Tout type de données

Un type doit hériter de l'autre type ou l'implémenter

Lève InvalidCastException

TryCast

Types référence uniquement

Un type doit hériter de l'autre type ou l'implémenter

Retourne Nothing (Visual Basic)

L'exemple suivant illustre deux utilisations de DirectCast, une qui échoue au moment de 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 de q est Double. CType réussit parce que Double peut être converti en Integer. Toutefois, la première utilisation de DirectCast échoue au moment de l'exécution parce que le type d'exécution de Double n'a aucune relation d'héritage avec Integer, bien qu'une conversion existe. La deuxième utilisation de DirectCast réussit parce qu'elle convertit depuis le type Form vers le type Control duquel Form hérite.

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft. Tous droits réservés.