TryCast

Mise à jour : novembre 2007

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 nuire à la performance de votre application. TryCast retourne Nothing (Visual Basic), de telle façon qu'au lieu d'avoir à gérer une éventuelle exception, vous n'aurez qu'à tester le résultat obtenu pour Nothing.

Utilisez le mot clé TryCast de la même façon que si vous utilisiez les mots clés CType ou DirectCast. Vous fournissez comme premier argument une expression et comme deuxième argument le type cible de la conversion. TryCast fonctionne uniquement sur des types référence, tels que des classes et des 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

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)

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

Conversions implicites et explicites