ReSharper 2026.1 Help

コードインスペクション: 与えられた 'is' 演算子の式は常に指定された型です

参照タイプ間の互換性チェック expr is type では、左側の expr が右側の type に割り当て可能なタイプである可能性があります。

C# のドキュメント"is 文が expr が null でなく、式を評価した結果のオブジェクトを型に変換できる場合は true、そうでない場合は false を返しますによると

つまり、このチェックが false と評価される唯一のケースは、 exprnull である場合です。

この場合のチェックの実際のセマンティクスを明らかにするには、 is チェックを単純な null チェックとして置き換える必要があります。

この警告は、コンパイラーの警告 CS0183: 与えられた式は常に指定された('type')型です (ReSharper でも検出されます)と似ていますが、参照型を扱い、値型の変換があるときにコンパイラーの警告が発生します。

private void Test(String str) { if (str is Object) { // do something } }
private void Test(String str) { if (str != null) { // do something } }
2026 年 6 月 12 日