警告 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
推奨アクション
適切な等値演算子 (
==
など) を使用するようにコードを変更します。 この警告を抑制しないでください。コード分析を完全に無効にするには、プロジェクト ファイルで
EnableNETAnalyzers
をfalse
に設定します。 詳細については、「EnableNETAnalyzers」を参照してください。
影響を受ける API
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示