CA1311 : Spécifier une culture ou utiliser une version invariante
Propriété | Value |
---|---|
Identificateur de la règle | CA1311 |
Titre | Spécifier une culture ou utiliser une version invariante |
Catégorie | Globalisation |
Le correctif est cassant ou non cassant | Sans rupture |
Activé par défaut dans .NET 8 | Non |
Cause
Un appel à String.ToUpper() ou String.ToLower() est effectué sans spécifier de culture.
Description de la règle
Spécifiez une culture ou utilisez une culture invariante pour éviter toute dépendance implicite vis-à-vis de la culture actuelle lors de l’appel à ToUpper
ou ToLower
. L’utilisation d’une culture invariante génère des résultats cohérents quelle que soit la culture d’une application.
Comment corriger les violations
Au lieu d’appeler les méthodes String.ToUpper() ou String.ToLower() sans paramètre, appelez ToUpper(CultureInfo) ou ToUpperInvariant(), ou ToLower(CultureInfo) ou ToLowerInvariant().
Exemple
L’extrait de code suivant montre une violation de la règle CA1311 :
string s = "hello";
s = s.ToLower();
Dim s As String = "hello"
s.ToLower()
L’extrait de code suivant corrige la violation :
string s = "hello";
s = s.ToLowerInvariant();
Dim s As String = "hello"
s.ToLowerInvariant()
Quand supprimer les avertissements
Vous pouvez sans risque supprimer un avertissement de cette règle si vous êtes certain que Thread.CurrentCulture ne changera jamais.
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 CA1311
// The code that's violating the rule is on this line.
#pragma warning restore CA1311
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.CA1311.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.