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