'is' против попытки броска с нулевой проверкой

Я заметил, что Решарпер предлагает мне включить это:

if (myObj.myProp is MyType)
{
   ...
}

в это:

var myObjRef = myObj.myProp as MyType;
if (myObjRef != null)
{
   ...
}

Почему это предложило бы это изменение? Я'Я привык, что Resharper предлагает изменения оптимизации и сокращения кода, но кажется, что он хочет взять мое единственное утверждение и превратить его в двухслойный.

В соответствии сMSDN:

является выражение оценивается как истина, если выполнены оба следующих условия:

выражение не является нулевым выражение может быть приведено ктип, То есть литое выражение формы(type)(expression) будет завершено без исключения.

Я неправильно это понимаю или нетis сделать точно такие же проверки, просто в одной строке без необходимости явно создавать другую локальную переменную для проверки на ноль?

Ответы на вопрос(7)

Ваш ответ на вопрос