ritengo che colata utilizzando il primo metodo genera un'eccezione se non può lanciare l'oggetto correttamente (cercando di lanciare il tipo errato), mentre l'utilizzo della parola chiave as imposterà semplicemente la variabile su null se non è in grado di eseguirla correttamente.
Quindi assicuratevi che se si utilizza la parola chiave as cast, si controlla
if(lb == null)
return null; // or throw new Exception()
e se si utilizza l') cast (si circondano con
try
{
LinkButton lb = (LinkButton)ctl;
}
catch(InvalidCastException ex)
{
//TODO: Handle Exception
}
fonte
2009-12-06 05:06:06
Ho visto questo. Deve essere duplicato. :) –
possibile duplicato di [Direct casting vs 'as' operator?] (Http://stackoverflow.com/questions/132445/direct-casting-vs-as-operator) –