Использование 'var' с 'is' заставляет Resharper сказать, что код эвристически недоступен - PullRequest
1 голос
/ 08 июня 2019

У меня есть этот бит кода в контроллере

if (ValidateId(id) is BadRequestObjectResult invalid)
    return invalid;

, где ValidateId возвращает BadRequestObjectResult (ссылочный тип).

Если я изменю код на

if (ValidateId(id) is var invalid)
    return invalid;

Решарпер будет жаловаться, что весь код после этих строк эвристически недоступен.

Я понимаю, что эвристика не является абсолютной, но мне интересно: почему Резарпер был вызван этим изменением кода?

1 Ответ

0 голосов
/ 08 июня 2019

R # абсолютно прав, потому что вы используете шаблон var , который всегда возвращает true , поэтому этот код недоступен.

Шаблон var - это ловушка-все для любого типа или значения.Значение expr всегда присваивается локальной переменной того же типа, что и тип времени компиляции expr.Результат выражения is всегда верен.Его синтаксис:

expr is var varname
...