Sdílet prostřednictvím


CA1311: Zadejte jazykovou verzi nebo použijte invariantní verzi

Vlastnost Hodnota
ID pravidla CA1311
Název Určení jazykové verze nebo použití invariantní verze
Kategorie Globalizace
Oprava způsobující chybu nebo chybu způsobující chybu Nenarušující
Povoleno ve výchozím nastavení v .NET 9 No

Příčina

Volání se provádí s String.ToUpper() jazykovou verzí nebo String.ToLower() bez zadání jazykové verze.

Popis pravidla

Zadejte jazykovou verzi nebo použijte invariantní jazykovou verzi, aby se zabránilo implicitní závislosti na aktuální jazykové verzi při volání ToUpper nebo ToLower. Použití invariantní jazykové verze poskytuje konzistentní výsledky bez ohledu na jazykovou verzi aplikace.

Jak opravit porušení

Místo volání bez parametrů String.ToUpper() nebo String.ToLower() metod, volání ToUpper(CultureInfo) nebo ToUpperInvariant()nebo ToLower(CultureInfo) nebo ToLowerInvariant().

Příklad

Následující fragment kódu ukazuje porušení pravidla CA1311:

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

Následující fragment kódu opraví porušení zásad:

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

Kdy potlačit upozornění

Pokud jste si jistí, že Thread.CurrentCulture se nikdy nezmění, je bezpečné potlačit upozornění z tohoto pravidla.

Potlačení upozornění

Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.

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

Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none konfiguračním souboru.

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

Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.

Viz také