Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
| Свойство | Значение |
|---|---|
| Идентификатор правила | CA1310 |
| Заголовок | Укажите StringComparison для обеспечения корректности. |
| Категория | Глобализация |
| Исправление является критическим или не критическим | неразрывный |
| Включен по умолчанию в .NET 10 | Нет |
| Применимые языки | C# и Visual Basic |
Причина
Операция сравнения строк использует перегрузку метода без указания параметра StringComparison и по умолчанию применяет сравнение строк, зависящее от языка и региональных настроек. Поведение будет зависеть от настроек региональных параметров текущего пользователя.
Описание правила
Метод сравнения строк, который по умолчанию использует параметры, специфичные для конкретной культуры, может привести к потенциально непреднамеренному поведению во время выполнения, не соответствующему намерению пользователя. Рекомендуется использовать перегрузку с параметром StringComparison для корректности и ясности намерений.
Это правило помечает методы сравнения строк, которые по умолчанию используют значение StringComparison, зависящее от культуры. Дополнительные сведения см. в разделе Сравнения строк, использующие текущую культуру.
Примечание.
Если вы хотите увидеть нарушения для всех методов сравнения строк, независимо от метода сравнения строк по умолчанию, используемого в методе, пожалуйста, воспользуйтесь рекомендацией CA1307: указывайте StringComparison для ясности.
Устранение нарушений
Чтобы устранить нарушение этого правила, замените методы сравнения строк перегрузками, принимающими перечисление StringComparison в качестве параметра. Например, измените String.Compare(str1, str2) на String.Compare(str1, str2, StringComparison.Ordinal).
Когда лучше отключить предупреждения
Вы можете безопасно отключить предупреждение из этого правила, если библиотека или приложение не предназначены для локализации.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable CA1310
// The code that's violating the rule is on this line.
#pragma warning restore CA1310
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.CA1310.severity = none
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.