Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
CA2251: используйте
| Свойство | Значение |
|---|---|
| Идентификатор правила | CA2251 |
| Заголовок | Используй String.Equals вместо String.Compare |
| Категория | Использование |
| Исправление является критическим или не критическим | неразрывный |
| Включен по умолчанию в .NET 10 | Нет |
| Применимые языки | C# и Visual Basic |
Причина
Результат вызова String.Compare сравнивается с нулем.
Описание правила
String.Compare предназначен для создания сравнения с общим порядком, который можно использовать для сортировки. Если для вас важно только то, что строки равны, то проще и быстрее использовать эквивалентную перегрузку String.Equals.
Устранение нарушений
Чтобы устранить нарушения этого правила, замените выражение, сравнивающее результат String.Compare, на вызов String.Equals.
Example
string leftValue = "...";
string rightValue = "...";
// This code violates the rule.
bool areEqualUsingCompare = string.Compare(leftValue, rightValue, StringComparison.OrdinalIgnoreCase) == 0;
// This code satisfies the rule.
bool areEqualUsingEquals = string.Equals(leftValue, rightValue, StringComparison.OrdinalIgnoreCase);
Когда лучше отключить предупреждения
Вы можете безопасно отключить предупреждения, связанные с этим правилом.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable CA2251
// The code that's violating the rule is on this line.
#pragma warning restore CA2251
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.CA2251.severity = none
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.