| プロパティ | 値 |
|---|---|
| ルール ID | CA2264 |
| Title |
ArgumentNullException.ThrowIfNull に非 null 値を渡してはいけません。 |
| カテゴリ | 使用方法 |
| 修正が破壊的か非破壊的か | なし |
| .NET 10 で既定で有効 | 警告として |
| 該当する言語 | C# と Visual Basic |
原因
null になることがないことがわかっている値は、 ArgumentNullException.ThrowIfNull()に渡されます。
規則の説明
ArgumentNullException.ThrowIfNull は、渡された引数が null のときにスローします。 特定のコンストラクトとして、null 非許容構造体 (Nullable<T>を除く)、null 非許容構造体であることが知られている型パラメーター、'nameof()' 式、および 'new' 式は、null になることはないため、ArgumentNullException.ThrowIfNull はスローされることはありません。 したがって、 ArgumentNullException.ThrowIfNull の呼び出しは不要です。
構造体の場合、 ArgumentNullException.ThrowIfNull は object?を受け入れるため、構造体はボックス化されるため、パフォーマンスが低下します。
違反の修正方法
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
詳細については、「コード分析の警告を抑制する方法」を参照してください。
こちらも参照ください
.NET