Когда я пишу такой код, где obj является локальной переменной:
if (obj is IMyInterface)
{
var result = (IMyInterface)obj;
// ....
}
Решарпер предлагает преобразовать его в код, подобный следующему:
var result = obj as IMyInterface;
if (result != null)
{
// ...
}
Я предпочитаю первое, поскольку оно не дает возможности для случайных исключений нулевых ссылок. Какие есть причины для предпочтения другой формы?
Почему Resharper рекомендует это?