Je trouve ce comportement de TryCast dans .NET 4.0/VS 2010 plutôt confus. À mon avis, TryCast fonctionne comme DirectCast, mais retournera Nothing au lieu de lancer une exception si un cast n'est pas possible.TryCast échoue où DirectCast fonctionne (.NET 4.0)
VS 2010/.NET 4
?TryCast(CType(1, Object), String)
Nothing
?DirectCast(CType(1, Object), String)
"1"
VS 2008/.NET 3.5
?TryCast(CType(1, Object), String)
Nothing
?DirectCast(CType(1, Object), String)
Cannot convert to 'String'.
Le .NET 3.5 résultats sont cohérents avec ce que je crois TryCast fait ... .NET 4 n'est cependant pas.
Quelqu'un peut-il me diriger dans la meilleure direction pour lancer un objet en toute sécurité dans .NET 4?
Je viens de confirmer ce que vous avez suggéré. DirectCast() lance en effet une exception lorsqu'il est exécuté dans une évaluation réelle. Merci pour la clarification! – motto
Ce serait vraiment bien si vous pouviez expliquer exactement ce qui s'est passé. – SLaks
@ SLaks, ajouté une explication rapide. – JaredPar