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.