CA1311: Określ kulturę lub użyj niezmiennej wersji
Właściwości | Wartość |
---|---|
Identyfikator reguły | CA1311 |
Tytuł | Określanie kultury lub używanie niezmiennej wersji |
Kategoria | Globalizacja |
Poprawka powodująca niezgodność lub niezgodność | Niezgodność |
Domyślnie włączone na platformie .NET 9 | Nie. |
Przyczyna
Wywołanie jest wykonywane do String.ToUpper() lub String.ToLower() bez określania kultury.
Opis reguły
Określ kulturę lub użyj niezmiennej kultury, aby uniknąć niejawnej zależności od bieżącej kultury podczas wywoływania ToUpper
metody lub ToLower
. Użycie niezmiennej kultury daje spójne wyniki niezależnie od kultury aplikacji.
Jak naprawić naruszenia
Zamiast wywoływać metody bez parametrówString.ToUpper(), String.ToLower() wywołaj metodę ToUpper(CultureInfo) lub ToUpperInvariant()lub .ToLower(CultureInfo)ToLowerInvariant()
Przykład
Poniższy fragment kodu przedstawia naruszenie reguły CA1311:
string s = "hello";
s = s.ToLower();
Dim s As String = "hello"
s.ToLower()
Poniższy fragment kodu naprawia naruszenie:
string s = "hello";
s = s.ToLowerInvariant();
Dim s As String = "hello"
s.ToLowerInvariant()
Kiedy pomijać ostrzeżenia
Można bezpiecznie pominąć ostrzeżenie z tej reguły, jeśli masz pewność, że Thread.CurrentCulture nigdy się nie zmieni.
Pomijanie ostrzeżenia
Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.
#pragma warning disable CA1311
// The code that's violating the rule is on this line.
#pragma warning restore CA1311
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none
w pliku konfiguracji.
[*.{cs,vb}]
dotnet_diagnostic.CA1311.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.