代码检查:根据位掩码的值,表达式结果将始终相同
此检查会报告那些看似动态、但由于所用掩码其实总是得到相同结果的枚举位掩码比较。 通常出现在比较 & 或 | 与永远不会匹配的标志组合的代码中。
示例
[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日