Quando escrevo código como este, em que obj é uma variável local:
if (obj is IMyInterface)
{
var result = (IMyInterface)obj;
// ....
}
O Resharper oferece a alteração para um código como este:
var result = obj as IMyInterface;
if (result != null)
{
// ...
}
Prefiro o primeiro, pois ele não oferece oportunidade para exceções acidentais de referência nula. Que razões existem para preferir a outra forma?
Por que o Resharper recomenda isso?