将 '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
我在控制器中有这段代码
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