Cuando escribo código como este, donde obj es una variable local:
if (obj is IMyInterface)
{
var result = (IMyInterface)obj;
// ....
}
Resharper ofrece cambiarlo a un código como este:
var result = obj as IMyInterface;
if (result != null)
{
// ...
}
Prefiero el primero, ya que no ofrece la oportunidad de excepciones de referencias nulas accidentales. ¿Qué razones hay para preferir la otra forma?
¿Por qué Resharper recomienda esto?