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