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


CA1307: укажите StringComparison для ясности

Свойство Значение
Идентификатор правила 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

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

См. также