Partager via


CA2264 : Ne passez pas de valeur non nullable à « ArgumentNullException.ThrowIfNull ».

Propriété Valeur
Identificateur de la règle CA2264
Titre Ne pas passer une valeur non nullable à ArgumentNullException.ThrowIfNull
Catégorie Utilisation
Le correctif a un effet disruptif ou non disruptif Sans rupture
Activé par défaut dans .NET 10 Comme avertissement
Langues applicables C# et Visual Basic

Cause

Une valeur connue pour ne jamais être null est passée à ArgumentNullException.ThrowIfNull().

Description de la règle

ArgumentNullException.ThrowIfNull lève lorsque l’argument passé est null. Certaines structures telles que les structs non nullables (à l’exception de Nullable<T>), les paramètres de type connus pour être des structs non nullables, les expressions « nameof() » et les expressions « new » sont connus pour ne jamais être null ; ainsi, ArgumentNullException.ThrowIfNull ne déclenchera jamais d'exception. Ainsi, l’appel ArgumentNullException.ThrowIfNull n’est pas nécessaire.

Dans le cas d’un struct, puisque ArgumentNullException.ThrowIfNull accepte un object?, le struct est boxé, ce qui entraîne une pénalité de performances supplémentaire.

Comment corriger les violations

Supprimez l’appel ArgumentNullException.ThrowIfNull .

Exemple

L’extrait de code suivant montre une violation de CA2264 :

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

L’extrait de code suivant corrige la violation :

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

Quand supprimer les avertissements

Il est toujours sûr de supprimer cet avertissement.

Supprimer un avertissement

Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.

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

Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none dans le fichier de configuration.

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

Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.

Voir aussi