Dela via


CA2264: Skicka inte ett icke-nullbart värde till "ArgumentNullException.ThrowIfNull"

Egenskap Värde
Regel-ID CA2264
Title Skicka inte ett icke-nullbart värde till ArgumentNullException.ThrowIfNull
Kategori Användning
Korrigeringen är antingen invasiv eller icke-invasiv Oumbrytbar
Aktiverad som standard i .NET 10 Som varning
Tillämpliga språk C# och Visual Basic

Orsak

Ett värde som är känt för att aldrig vara null skickas till ArgumentNullException.ThrowIfNull().

Regelbeskrivning

ArgumentNullException.ThrowIfNull kastar när det skickade argumentet är null. Vissa konstruktioner som icke-nullable structs (förutom Nullable<T>), typparametrar som är kända för att vara icke-nullable structs, "nameof()" uttryck och "new"-uttryck är kända för att aldrig vara null, så ArgumentNullException.ThrowIfNull kommer aldrig att kasta. Därför är det onödigt att ringa ArgumentNullException.ThrowIfNull .

När det gäller en struct, eftersom ArgumentNullException.ThrowIfNull accepterar en object?, boxas structen, vilket orsakar en ytterligare prestandabelastning.

Så här åtgärdar du överträdelser

Ta bort anropet ArgumentNullException.ThrowIfNull .

Exempel

Följande kodfragment visar ett brott mot CA2264:

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

Följande kodfragment åtgärdar överträdelsen:

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

När du ska ignorera varningar

Det är alltid säkert att undertrycka den här varningen.

Ignorera en varning

Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.

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

Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.

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

Mer information finns i Så här utelämnar du kodanalysvarningar.

Se även