Trovo che questo comportamento di TryCast in .NET 4.0/VS 2010 sia piuttosto confuso.TryCast non funziona dove DirectCast funziona (.NET 4.0)
A mio avviso TryCast funziona come DirectCast, ma restituirà Niente invece di generare un'eccezione se non è possibile eseguire il cast.
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 risultati sono coerenti con ciò in cui credo TryCast fa ... .NET 4 tuttavia non lo è.
Qualcuno può indicarmi la direzione migliore per trasmettere in modo sicuro un oggetto a String in .NET 4?
Ho appena confermato ciò che mi hai suggerito. DirectCast() effettivamente lancia un'eccezione quando viene eseguita in una valutazione effettiva. Grazie per il chiarimento! – motto
Sarebbe davvero bello se potessi spiegare esattamente cosa è successo. – SLaks
@SLaks, aggiunta una rapida spiegazione. – JaredPar