Quando scrivo un codice come questo, dove obj è una variabile locale:
if (obj is IMyInterface)
{
var result = (IMyInterface)obj;
// ....
}
Offerte di Resharper per cambiarlo in codice come questo:
var result = obj as IMyInterface;
if (result != null)
{
// ...
}
Preferisco il primo, in quanto non offre alcuna possibilità di eccezioni accidentali di riferimento null. Quali ragioni ci sono per preferire l'altra forma?
Perchè Resharper lo consiglia?