コードインスペクション: 指定された 'is' 演算子の式は常に提供された型です。
参照タイプ間の互換性チェック expr is type では、左側の expr が右側の type に割り当て可能なタイプである可能性があります。
C# のドキュメント、 "is 文が expr が null でなく、式を評価した結果のオブジェクトを型に変換できる場合は true、そうでない場合は false を返しますによると
つまり、このチェックが false と評価される唯一のケースは、 expr が null である場合です。
この場合のチェックの実際のセマンティクスを明らかにするには、 is チェックを単純な null チェックとして置き換える必要があります。
この警告は、コンパイラーの警告 CS0183: 与えられた式は常に提供された('type')型です (JetBrains Rider でも検出されます)と似ていますが、参照型を扱う点が異なり、コンパイラーの警告は値型の変換時に発生します。
private void Test(String str)
{
if (str is Object)
{
// do something
}
}
private void Test(String str)
{
if (str != null)
{
// do something
}
}
2026 年 6 月 12 日