コードインスペクション: 与えられた 'is' 演算子の式は常に指定された型です
参照タイプ間の互換性チェック expr is type では、左側の expr が右側の type に割り当て可能なタイプである可能性があります。
C# のドキュメント、 "is 文が expr が null でなく、式を評価した結果のオブジェクトを型に変換できる場合は true、そうでない場合は false を返しますによると
つまり、このチェックが false と評価される唯一のケースは、 expr が null である場合です。
この場合のチェックの実際のセマンティクスを明らかにするには、 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 日