ReSharper 2025.2 Help

代码检查:该模式是多余的,不会产生任何运行时检查。

C# 或/与/非模式可以用于生成紧凑的值检查,而无需重复输入值(比较 value == 1 || value == 2value 为 1 或 2)。 然而,当多个模式一起使用时,阅读表达式时它们的优先级并不那么清晰,这可能会引入难以发现的错误。

请考虑以下表达式: value 不为 0 或 -1

如果用户打算检查 value 是否不等于 01 ,这种检查在 value == -1 时将评估为 true ,因为 不为 的优先级高于 或者。 要修正用于预期检查的模式,我们需要添加括号以更改优先级: value 不为(0 或 -1)

ReSharper 报告了此类模式,但不会建议任何快速修复,因为根据用户意图可以以不同方式更正该模式。

void Sample(int value) { if (value is not 0 or -1) { Console.WriteLine(value); } }
void Sample(int value) { if (value is not (0 or -1)) { Console.WriteLine(value); } }
最后修改日期: 2025年 9月 27日