Бөлісу құралы:


CA1311: укажите культуру или используйте инвариантный вариант

Свойство Значение
Идентификатор правила CA1311
Заголовок Укажите язык или используйте инвариантную версию
Категория Глобализация
Исправление является разрушающим или неразрушающим Неразрывный
Включен по умолчанию в .NET 10 Нет
Применимые языки C# и Visual Basic

Причина

Вызов выполняется к String.ToUpper() или String.ToLower() без указания культуры.

Описание правила

Укажите культуру или используйте инвариантную культуру, чтобы избежать неявной зависимости от текущей культуры при вызове ToUpper или ToLower. Использование инвариантной культуры обеспечивает согласованные результаты независимо от культуры приложения.

Устранение нарушений

Вместо вызова безаргументных методов String.ToUpper() или String.ToLower(), вызывайте ToUpper(CultureInfo) или ToUpperInvariant(), или ToLower(CultureInfo) или ToLowerInvariant().

Пример

В следующем фрагменте кода показано нарушение правила CA1311:

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

Следующий фрагмент кода исправляет нарушение.

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

Когда лучше отключить предупреждения

Если вы уверены, что Thread.CurrentCulture никогда не изменится, безопасно подавить предупреждение из этого правила.

Отключение предупреждений

Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.

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

Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации.

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

Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.

См. также