コードインスペクション:ゼロ以外のオペランドを持つ定数 Shift 式の結果はゼロの値になります。
定数シフト式の中には、一見意味がありそうに見えるものの、すべての有効ビットがシフトアウトされるため、常にゼロに評価されるものがあります。 このインスペクションは、結果が常にゼロとなる非ゼロオペランドを持つ定数シフト式を報告します。
サンプル
class Example
{
void Test()
{
var value = 1 << 40;
}
}
class Example
{
void Test()
{
var value = (long)1 << 40;
}
}
クイックフィックス
左オペランドの幅を広げても意図した値が維持される場合は、より広い型にキャストすることで応急処置となります。 それ以外の場合は、シフト数を変更するか、より広い左オペランドを明示的に使用するのが適切な解決策です。
2026 年 6 月 12 日