JetBrains Rider 2026.1 Help

コードインスペクション:パターンは冗長で、実行時のチェックは行われません。

C# or/and/not パターンは、入力値を繰り返さずにコンパクトな値チェックを生成できます (value == 1 || value == 2value is 1 or 2 を比較してください)。 ただし、複数のパターンが一緒に使用されると、式を読んだときにそれらの優先順位が明確でなくなり、見つけにくいバグが発生する可能性があります。

次の式を検討してください: value is not 0 or -1

ユーザーが value0 または 1 の両方と等しくないことを確認する場合、 is notor より優先度が高いため、このチェックは value == -1 のときに true に評価されます。 意図したチェックのパターンを修正するには、括弧を追加して優先順位を変更する必要があります: value is not (0 or -1)

JetBrains Rider はこのようなパターンを報告しますが、パターンはユーザーの意図によりさまざまな方法で修正できるため、クイックフィックスは提案しません。

void Sample(int value) { if (value is not 0 or -1) { Console.WriteLine(value); } }
void Sample(int value) { if (value is not (0 or -1)) { Console.WriteLine(value); } }
2026 年 6 月 12 日