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