CA2264 : Ne passez pas de valeur non nullable à « ArgumentNullException.ThrowIfNull ».
Propriété | Value |
---|---|
Identificateur de la règle | CA2264 |
Titre | Ne passez pas de valeur non nullable à ' ArgumentNullException.ThrowIfNull' |
Catégorie | Utilisation |
Le correctif est cassant ou non cassant | Sans rupture |
Activée par défaut dans .NET 9 | Comme avertissement |
Cause
Lorsqu’une valeur connue pour ne jamais être null est passée à ArgumentNullException.ThrowIfNull()
, une exception n’est jamais levée, ce qui rend l’instruction sans opération.
Description de la règle
ArgumentNullException.ThrowIfNull
lève lorsque l’argument passé est null
. Certaines constructions telles que les structs non nullables (à l’exception des Nullable<T>expressions « nameof() » et « new » sont connues pour ne jamais être null, de sorte ArgumentNullException.ThrowIfNull
qu’elles ne lèveront jamais.
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.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour