JetBrains Rider 2026.1 Help

代码检查:根据位掩码的值,表达式结果将始终相同

该检查会报告枚举位掩码比较,虽然看起来是动态的,但由于位掩码的原因,结果总是相同。 通常出现在将 &| 的结果与永远无法匹配的标志组合进行比较的代码中。

示例

[Flags] enum Box { Long = 1, High = 2, Colorful = 4 } bool HasColor(Box box) { return (box & Box.High) == Box.Colorful; }
[Flags] enum Box { Long = 1, High = 2, Colorful = 4 } bool HasHigh(Box box) { return (box & Box.High) == Box.High; }

修正方法

此检查没有专用的快速修复。 解决方法是与掩码实际可能产生的标志组合进行比较。

2026年 5月 8日