'is' против попытки броска с нулевой проверкой
Я заметил, что Решарпер предлагает мне включить это:
if (myObj.myProp is MyType)
{
...
}
в это:
var myObjRef = myObj.myProp as MyType;
if (myObjRef != null)
{
...
}
Почему это предложило бы это изменение? Я'Я привык, что Resharper предлагает изменения оптимизации и сокращения кода, но кажется, что он хочет взять мое единственное утверждение и превратить его в двухслойный.
В соответствии сMSDN:
является выражение оценивается как истина, если выполнены оба следующих условия:
выражение не является нулевым выражение может быть приведено ктип, То есть литое выражение формы(type)(expression)
будет завершено без исключения.
Я неправильно это понимаю или нетis
сделать точно такие же проверки, просто в одной строке без необходимости явно создавать другую локальную переменную для проверки на ноль?