Я нахожу это поведение TryCast в .NET 4.0/VS 2010 довольно запутанным.
В моем понимании TryCast работает как DirectCast, но возвращает Nothing вместо того, чтобы бросать исключение, если бросок невозможен.
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'.
Результаты .NET 3.5 согласуются с тем, что я считаю TryCast....NET 4, однако, не является.
Может кто-нибудь, пожалуйста, укажите мне в лучшем направлении, чтобы безопасно применить объект к String в .NET 4?