我在控制器中有这段代码
if (ValidateId(id) is BadRequestObjectResult invalid)
return invalid;
其中ValidateId
返回BadRequestObjectResult
(引用类型)。
如果我将代码更改为
if (ValidateId(id) is var invalid)
return invalid;
Resharper会抱怨说,这些行之后的所有代码都无法通过启发式访问。
我知道启发式方法不是绝对的,但我想知道:为什么在此代码更改中触发了Resharper?
答案 0 :(得分:0)
R#绝对正确,因为您使用总是返回 true 的var pattern,因此此代码不可访问。
对于任何类型或值,var模式都是万能的。的价值 总是将expr分配给与 expr的编译时间类型。 is表达式的结果总是 真正。其语法为:
expr is var varname