次の方法で共有


CA2265: Span<T>null または default

プロパティ
ルール ID CA2264
Title Span<T>nullを比較しないdefault
カテゴリ 使用方法
修正が中断ありか中断なしか なし
.NET 9 では既定で有効 警告として

原因

Span<T> インスタンスは、nullまたはdefaultと比較されます。

規則の説明

スパンと null または default を比較しても、意図したとおりに動作しない場合があります。 defaultnullリテラルは暗黙的にSpan<T>.Emptyに変換されます。

違反の修正方法

代わりに IsEmpty を呼び出して、冗長な比較を削除するか、コードをより明示的にします。

次のコード スニペットは、CA2265 の 2 つの違反と違反の修正を示しています。

Span<int> span = new([1, 2, 3]);
// CA2265 violation.
if (span == null) { }
// CA2265 violation.
if (span == default) { }

// Fixes the violation.
if (span.IsEmpty) { }

どのようなときに警告を抑制するか

スパンを空のスパンと比較する場合は、この警告を抑制しても問題ありません。

警告を抑制する

単一の違反を抑制するだけの場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、規則をもう一度有効にします。

#pragma warning disable CA2265
// The code that's violating the rule is on this line.
#pragma warning restore CA2265

ファイル、フォルダー、またはプロジェクトの規則を無効にするには、構成ファイルでその重要度を none に設定します。

[*.{cs,vb}]
dotnet_diagnostic.CA2265.severity = none

詳細については、「コード分析の警告を抑制する方法」を参照してください。

関連項目