Lorsque j'écris du code comme celui-ci, où obj est une variable locale:
if (obj is IMyInterface)
{
var result = (IMyInterface)obj;
// ....
}
Resharper propose de le changer en code comme ceci:
var result = obj as IMyInterface;
if (result != null)
{
// ...
}
Je préfère le premier, car il n'offre aucune possibilité d'exceptions de référence nulle accidentelles. Quelles sont les raisons de préférer l'autre forme?
Pourquoi Resharper le recommande-t-il?