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.

Voir aussi