将 'var' 与 'is' 一起使用会导致 Resharper 说代码启发式无法访问

Using 'var' with 'is' causes Resharper to say code is heuristically unreachable

我在控制器中有这段代码

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

其中 ValidateId returns a BadRequestObjectResult(引用类型)。

如果我将代码更改为

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

Resharper 会抱怨这些行之后的所有代码都是启发式无法访问的。

我知道启发式不是绝对的,但我想知道:为什么在此代码更改时触发了 Resharper?

R# 绝对正确,因为您使用的 var pattern 总是 returns true 因此无法访问此代码。

The var pattern is a catch-all for any type or value. The value of expr is always assigned to a local variable the same type as the compile time type of expr. The result of the is expression is always true. Its syntax is:

expr is var varname