次の方法で共有


CA2264: 'ArgumentNullException.ThrowIfNull' に null 非許容値を渡さないでください

プロパティ
ルール ID CA2264
Title Null 非許容値を 'ArgumentNullException.ThrowIfNull' に渡さないでください
カテゴリ 使用方法
修正が中断ありか中断なしか なし
.NET 9 では既定で有効 警告として

原因

null でないことがわかっている値が ArgumentNullException.ThrowIfNull()に渡された場合、例外はスローされず、ステートメントは no-op になります。

規則の説明

ArgumentNullException.ThrowIfNull は、渡された引数が nullされたときにスローされます。 null 非許容構造体 ( Nullable<T>を除く)、null 非許容構造体であることが知られている型パラメーター、'nameof()' 式、および 'new' 式などの特定のコンストラクトは、null になることはないため、 ArgumentNullException.ThrowIfNull はスローされません。

構造体の場合、 ArgumentNullException.ThrowIfNullobject?を受け入れるため、構造体はボックス化されるため、パフォーマンスが低下します。

違反の修正方法

ArgumentNullException.ThrowIfNull呼び出しを削除します。

次のコード スニペットは、CA2264 の違反を示しています。

static void Print(int value)
{
    ArgumentNullException.ThrowIfNull(value);
    Console.WriteLine(value);
}

次のコード スニペットでは違反を修正しています。

static void Print(int value)
{
    Console.WriteLine(value.Value);
}

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

この警告は常に安全に抑制できます。

警告を抑制する

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

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

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

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

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