Share via


CA1311: Ange en kultur eller använd en invariant version

Property Värde
Regel-ID CA1311
Rubrik Ange en kultur eller använd en invariant version
Kategori Globalisering
Korrigeringen är icke-bakåtkompatibel Icke-icke-bryta
Aktiverad som standard i .NET 8 Nej

Orsak

Ett anrop görs till eller String.ToLower() utan att String.ToUpper() ange en kultur.

Regelbeskrivning

Ange en kultur eller använd en invariant kultur för att undvika implicit beroende av den aktuella kulturen när du anropar ToUpper eller ToLower. Att använda en invariant kultur ger konsekventa resultat oavsett kulturen i ett program.

Så här åtgärdar du överträdelser

I stället för att anropa parameterlösa String.ToUpper() eller String.ToLower() metoder anropar ToUpper(CultureInfo) eller ToUpperInvariant(), eller ToLower(CultureInfo) eller ToLowerInvariant().

Exempel

Följande kodfragment visar ett brott mot regeln CA1311:

string s = "hello";
s = s.ToLower();
Dim s As String = "hello"
s.ToLower()

Följande kodfragment åtgärdar överträdelsen:

string s = "hello";
s = s.ToLowerInvariant();
Dim s As String = "hello"
s.ToLowerInvariant()

När du ska ignorera varningar

Det är säkert att ignorera en varning från den här regeln om du är säker på att det aldrig kommer att Thread.CurrentCulture ändras.

Ignorera en varning

Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.

#pragma warning disable CA1311
// The code that's violating the rule is on this line.
#pragma warning restore CA1311

Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.

[*.{cs,vb}]
dotnet_diagnostic.CA1311.severity = none

Mer information finns i Så här utelämnar du kodanalysvarningar.

Se även