Partager via


Opérateur TryCast (Visual Basic)

Introduit une opération de conversion de type qui ne lève pas d'exception.

Notes

Si une tentative de conversion échoue, CType et DirectCast lèvent tous deux une erreur InvalidCastException. Cela peut affecter de façon défavorable la performance de votre application. TryCast retourne Nothing (Visual Basic), afin qu'au lieu de devoir gérer une exception possible, vous devez seulement tester le résultat retourné par rapport à Nothing.

Utilisez le mot clé TryCast de la même façon que si vous utilisiez les mots clés Fonction CType (Visual Basic) et Opérateur DirectCast (Visual Basic) . Vous fournissez une expression comme le premier argument et un type dans lequel le convertir comme deuxième argument. TryCast fonctionne uniquement sur des types références, tels que les classes et les interfaces. Une relation d'héritage ou d'implémentation entre les deux types est requise. Cela signifie qu'un type doit hériter de l'autre ou l'implémenter.

Erreurs et échecs

TryCast 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, TryCast retourne Nothing (Visual Basic).

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

Fonction CType (Visual Basic)

Tout type de données

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

Lève InvalidCastException

Opérateur DirectCast (Visual Basic)

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)

Exemple

L'exemple suivant montre comment utiliser TryCast.

Function PrintTypeCode(ByVal obj As Object) As String 
    Dim objAsConvertible As IConvertible = TryCast(obj, IConvertible)
    If objAsConvertible Is Nothing Then 
        Return obj.ToString() & " does not implement IConvertible" 
    Else 
        Return "Type code is " & objAsConvertible.GetTypeCode()
    End If 
End Function

Voir aussi

Concepts

Conversions étendues et restrictives (Visual Basic)

Conversions implicites et explicites (Visual Basic)