CA1310 : Spécifier StringComparison pour corriger

Propriété Value
Identificateur de la règle CA1310
Titre Spécifier StringComparison pour corriger
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 et utilise la comparaison de chaînes spécifique à la culture par défaut. Par conséquent, son comportement varie en fonction des paramètres régionaux de l’utilisateur actuel.

Description de la règle

Une méthode de comparaison de chaînes qui utilise par défaut la comparaison de chaînes spécifique à la culture peut avoir un comportement runtime potentiellement involontaire qui ne correspond pas à l’intention de l’utilisateur. Il est recommandé d’utiliser la surcharge avec le paramètre StringComparison pour plus d’exactitude et de clarté d’intention.

Cette règle met en avant les méthodes de comparaison de chaînes qui utilisent la valeur StringComparison spécifique à la culture par défaut. Pour plus d’informations, consultez Comparaisons de chaînes qui utilisent la culture actuelle.

Notes

Si vous souhaitez voir des violations pour toutes les méthodes de comparaison de chaînes, quelle que soit la comparaison de chaînes par défaut utilisée par la méthode, utilisez plutôt CA1307 : Spécifier StringComparison pour plus de clarté.

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 String.Compare(str1, str2) par String.Compare(str1, str2, StringComparison.Ordinal).

Quand supprimer les avertissements

Il est prudent de supprimer un avertissement de cette règle lorsque la bibliothèque ou l’application n’est pas destinée à être localisée.

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 CA1310
// The code that's violating the rule is on this line.
#pragma warning restore CA1310

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.CA1310.severity = none

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

Voir aussi