次の方法で共有


警告 CA2013:値の型と共に ReferenceEquals を使用しないでください

.NET コード アナライザー ルール CA2013 は、.NET 5 以降では既定で有効になっています。 ReferenceEquals(Object, Object) を使用して 1 つまたは複数の値の型の等価性を比較するコードについては、ビルド警告が生成されます。

変更内容

.NET 5 以降、.NET SDK には .NET ソース コード アナライザーが含まれています。 これらのルールのいくつかは、CA2013 を含め、既定で有効になっています。 このルールに違反し、警告をエラーとして扱うように構成されているコードがプロジェクトに含まれている場合、この変更によってビルドが破損する可能性があります。

ReferenceEquals(Object, Object) を使用して 1 または複数の値の型の等価性を比較するインスタンスが、ルール CA2013 によって検出されます。 このように値の型の等価性を比較すると、値がボックス化されてから比較が行われるため、結果が不正確になる可能性があります。 比較した値が、同じ値の型のインスタンスを表す場合でも、ReferenceEquals(Object, Object) からは false が返されます。

導入されたバージョン

5.0

  • 適切な等値演算子 (== など) を使用するようにコードを変更します。 この警告を抑制しないでください。

  • コード分析を完全に無効にするには、プロジェクト ファイルで EnableNETAnalyzersfalse に設定します。 詳細については、「EnableNETAnalyzers」を参照してください。

影響を受ける API