コードインスペクション:このタイプの左オペランドに対する疑わしい Shift 数
インスペクションでは、書き込まれたシフト数が実際に使用されるシフト数と異なるシフト式が報告されます。 C# では、実行時システムがシフト演算の右オペランドを切り捨てます。 例: int を 40 だけシフトすると、実際には 8 だけシフトされます。 これは多くの場合、左オペランドの型が間違っているか、カウントが間違っていることを意味します。
サンプル
const ulong mask = 0x8000_0000 << 1;
const ulong mask = (ulong)0x8000_0000 << 1;
クイックフィックス
左オペランドの型またはシフト数を修正して、演算が意図どおりに動作するようにしてください。
2026 年 6 月 12 日