TryCast et DirectCast sont casting opérateurs qui mènent directement à la CLR de soutien pour la coulée. Ils peuvent rapidement jeter un objet d'un type de base à un type dérivé ou unbox une valeur d'un type valeur. DirectCast déclenche une exception quand le plâtre n'est pas possible, TryCast ne retourne Rien si elle a échoué. Vous souhaitez généralement faveur DirectCast pour attraper les erreurs de programmation.
CType permet un sur-ensemble de conversions, ceux qui le CLR fronce les sourcils sur. Le meilleur exemple que je peux penser à est de convertir une chaîne en un nombre ou une date. Par exemple:
Dim obj As New Object
obj = "4/1/2010"
Dim dt As DateTime = CType(obj, DateTime)
Que vous devrez utiliser si Option Strict on est en vigueur. S'il est Hors tension, puis vous pouvez le faire directement:
Option Strict Off
...
Dim dt As DateTime = obj
Très pratique de cours et une partie de VB.NET héritage comme un typées dynamiquement de la langue. Mais pas sans problèmes, qui date de la Licorne à jour stackoverflow.com mais ce sera une journée en janvier, quand un Britannique entre dans la chaîne. Conversions inattendues est la raison pour laquelle le CLR ne permet pas directement. L'explicite, n'est jamais une surprise de conversion ressemble à ceci:
Dim dt As DateTime = DateTime.Parse(obj.ToString(), _
System.Globalization.CultureInfo.GetCultureInfo("en-US").DateTimeFormat)
Si vous devez acheter en Essayer/DirectCast vs CType vs conversions explicites est plutôt un choix personnel. Si vous avez maintenant le programme avec l'Option Strict Sur alors vous devriez certainement commencer à utiliser Try/DirectCast. Si vous en faveur de la VB.NET langue, parce que vous aimez le confort de typage dynamique alors n'hésitez pas à rester sur CType.