JetBrains Rider 2025.2 Help

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

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

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

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

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

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月 26日