代码检查:常量 Shift 表达式具有非零操作数时结果为零值
某些常量 Shift 表达式看起来有意义,但由于所有有效位都被移出,结果始终为零。 此检查会报告具有非零操作数且结果始终为零的常量 Shift 表达式。
示例
class Example
{
void Test()
{
var value = 1 << 40;
}
}
class Example
{
void Test()
{
var value = (long)1 << 40;
}
}
快速修复
如果扩大左侧操作数能保留预期值,则快速修复会将其转换为更宽的类型。 在其他情况下,通常正确的修复方式是更改 Shift 计数或显式使用更宽的左侧操作数。
2026年 5月 8日