CA2264: Skicka inte ett icke-nullbart värde till "ArgumentNullException.ThrowIfNull"
Property | Värde |
---|---|
Regel-ID | CA2264 |
Title | Skicka inte ett icke-null-värde till "ArgumentNullException.ThrowIfNull" |
Kategori | Användning |
Korrigeringen är icke-bakåtkompatibel | Icke-icke-bryta |
Aktiverad som standard i .NET 9 | Som varning |
Orsak
När ett värde som är känt för att aldrig vara null skickas till ArgumentNullException.ThrowIfNull()
genereras aldrig ett undantag, vilket gör -instruktionen till en no-op.
Regelbeskrivning
ArgumentNullException.ThrowIfNull
genererar när det skickade argumentet är null
. Vissa konstruktioner som icke-nullbara structs (förutom Nullable<T>), nameof()-uttryck och "nya" uttryck är kända för att aldrig vara null, så ArgumentNullException.ThrowIfNull
kommer aldrig att utlösas.
När det gäller en struct, eftersom ArgumentNullException.ThrowIfNull
accepterar en object?
, boxas structen, vilket orsakar ytterligare en prestandastraff.
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.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för