CA1307 : Spécifier StringComparison pour clarifier
Propriété | Value |
---|---|
Identificateur de la règle | CA1307 |
Titre | Spécifier StringComparison pour clarifier |
Catégorie | Globalisation |
Le correctif est cassant ou non cassant | Sans rupture |
Activée par défaut dans .NET 9 | Non |
Cause
Une opération de comparaison de chaînes utilise une surcharge de méthode qui ne définit pas de paramètre StringComparison.
Description de la règle
De nombreuses opérations de comparaison de chaînes fournissent une surcharge qui accepte une valeur d’énumération StringComparison en tant que paramètre.
Chaque fois qu’il existe une surcharge qui prend un paramètre StringComparison, elle doit être utilisée à la place d’une surcharge qui ne prend pas ce paramètre. En définissant explicitement ce paramètre, votre code est souvent plus clair et plus facile à gérer. Pour plus d’informations, consultez Spécification explicite de comparaisons de chaînes.
Notes
Cette règle ne prend pas en compte la valeur par défaut StringComparison utilisée par la méthode de comparaison. Par conséquent, cela peut être potentiellement bruyant pour les méthodes qui utilisent la comparaison de chaînes Ordinal
par défaut et l’utilisateur destiné à utiliser ce mode de comparaison par défaut.
Si vous souhaitez voir uniquement les violations pour les méthodes de chaîne connues qui utilisent la comparaison de chaînes spécifiques à la culture par défaut, utilisez plutôt CA1310 : Spécifier StringComparison pour l’exactitude.
Comment corriger les violations
Pour corriger une violation de cette règle, remplacez les méthodes de comparaison de chaînes par des surcharges qui acceptent l’énumération StringComparison en tant que paramètre. Par exemple, remplacez str1.IndexOf(ch1)
par str1.IndexOf(ch1, StringComparison.Ordinal)
.
Quand supprimer les avertissements
Il est prudent de supprimer un avertissement de cette règle lorsque la clarté de l’intention n’est pas requise. Par exemple, le code de test ou le code non localisable peut ne pas l’exiger.
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 CA1307
// The code that's violating the rule is on this line.
#pragma warning restore CA1307
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.CA1307.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.