Я нахожу это поведение TryCast в .NET 4.0/VS 2010 довольно запутанным.TryCast не работает, когда работает DirectCast (.NET 4.0)
В моем понимании 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?
Я только что подтвердил, что вы предложили. DirectCast() действительно генерирует исключение при запуске в реальной оценке. Спасибо за разъяснения! – motto
Было бы очень аккуратно, если бы вы могли точно объяснить, что произошло. – SLaks
@SLaks, добавлено быстрое объяснение. – JaredPar