Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
| Proprietà | valore |
|---|---|
| ID regola | CA2264 |
| Title | Non passare un valore non nullable a ArgumentNullException.ThrowIfNull |
| Categoria | Utilizzo |
| La correzione causa un'interruzione o meno | Non rompente |
| Abilitato per impostazione predefinita in .NET 10 | A titolo di avvertimento |
| Linguaggi applicabili | C# e Visual Basic |
Causa
Un valore noto per non essere mai null viene passato a ArgumentNullException.ThrowIfNull().
Descrizione regola
ArgumentNullException.ThrowIfNull genera quando l'argomento passato è null. Alcuni costrutti, come le struct non nullable (ad eccezione di Nullable<T>), i parametri di tipo noti per essere struct non nullable, le espressioni 'nameof()' e le espressioni 'new', non sono mai nulli, quindi ArgumentNullException.ThrowIfNull non genererà mai un'eccezione. Pertanto, la chiamata ArgumentNullException.ThrowIfNull non è necessaria.
Nel caso di una struttura, poiché ArgumentNullException.ThrowIfNull accetta un object?, la struttura viene sottoposta a boxing, causando un ulteriore calo delle prestazioni.
Come correggere le violazioni
Rimuovere la ArgumentNullException.ThrowIfNull chiamata.
Esempio
Il frammento di codice seguente mostra una violazione di CA2264:
static void Print(int value)
{
ArgumentNullException.ThrowIfNull(value);
Console.WriteLine(value);
}
Il frammento di codice seguente corregge la violazione:
static void Print(int value)
{
Console.WriteLine(value.Value);
}
Quando eliminare gli avvisi
È sempre sicuro eliminare questo avviso.
Eliminare un avviso
Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.
#pragma warning disable CA2264
// The code that's violating the rule is on this line.
#pragma warning restore CA2264
Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità none su nel file di configurazione.
[*.{cs,vb}]
dotnet_diagnostic.CA2264.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.