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é par défaut dans .NET 8 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.

Voir aussi