CA1856 : Utilisation incorrecte de l’attribut ConstantExpected
Propriété | Value |
---|---|
Identificateur de la règle | CA1856 |
Titre | Utilisation incorrecte de l’attribut ConstantExpected |
Catégorie | Performances |
Le correctif est cassant ou non cassant | Sans rupture |
Activé par défaut dans .NET 8 | Comme erreur |
Cause
L’attribut ConstantExpectedAttribute n’est pas appliqué correctement à un paramètre.
Description de la règle
Cette règle signale les utilisations incorrectes de l’attribut ConstantExpectedAttribute, par exemple :
- La valeur Min ou Max n’est pas compatible avec le type de paramètre.
- Le type de paramètre n’est pas pris en charge pour l’attribut ConstantExpectedAttribute.
- Les valeurs Min et Max sont inversées.
- La valeur Min ou Max ne correspond pas aux limites de valeur du paramètre.
Comment corriger les violations
Corrigez votre code comme indiqué par le message d’erreur spécifique que vous recevez.
Exemple
L’extrait de code suivant montre des violations de CA1856 :
using System.Diagnostics.CodeAnalysis;
// Violation - value not compatible with parameter type.
static void M1([ConstantExpected(Min = "a")] char val) { }
// Violation - unsupported type for attribute.
static void M2([ConstantExpected] decimal val) { }
// Violation - Min and Max values are inverted.
static void M3([ConstantExpected(Max = 0, Min = 1)] int val) { }
// Violation - value does not fit within the parameter value bounds.
static void M4([ConstantExpected(Min = long.MinValue)] int val) { }
L’extrait de code suivant corrige les violations :
using System.Diagnostics.CodeAnalysis;
static void M1([ConstantExpected(Min = 'a')] char val) { }
static void M2(decimal val) { }
static void M3([ConstantExpected(Min = 0, Max = 1)] int val) { }
static void M4([ConstantExpected(Min = int.MinValue)] int val) { }
Quand supprimer les avertissements
Une violation de cette règle indique une erreur dans votre code et doit toujours être corrigée.
Collaborer avec nous sur GitHub
La source de ce contenu se trouve sur GitHub, où vous pouvez également créer et examiner des problèmes et des demandes de tirage (pull requests). Pour plus d’informations, consultez notre guide du contributeur.