Поделиться через


CA2226: перегрузки операторов должны быть симметричны

Свойство Значение
Идентификатор правила CA2226
Заголовок Перегрузки операторов должны быть симметричными
Категория Использование
Исправление является критическим или не критическим Не критическое
Включен по умолчанию в .NET 9 No

Причина

Тип реализует оператор равенства или неравенства, но не реализует противоположный оператор.

По умолчанию это правило проверяет только видимые извне типы, но это поведение можно настроить.

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

Отсутствуют обстоятельства, в которых равенство или неравенство применимо к экземплярам типа, а противоположный оператор не определен. Типы обычно реализуют оператор неравенства, возвращая отрицательное значение оператора равенства.

Компилятор C# выдает ошибку при нарушении этого правила.

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

Чтобы устранить нарушение этого правила, реализуйте операторы равенства и неравенства или удалите существующий оператор.

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

Для этого правила отключать вывод предупреждений не следует. В противном случае тип не будет согласованно работать с .NET.

Настройка кода для анализа

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

Этот параметр можно настроить только для этого правила, для всех правил, к которым он применяется, или для всех правил в этой категории (использование), к которым она применяется. Дополнительные сведения см. в статье Параметры конфигурации правила качества кода.

Включение определенных контактных зон API

Вы можете настроить, для каких частей базы кода следует выполнять это правило в зависимости от их доступности. Например, чтобы указать, что правило должно выполняться только для закрытой контактной зоны API, добавьте следующую пару "ключ-значение" в файл EDITORCONFIG в своем проекте:

dotnet_code_quality.CAXXXX.api_surface = private, internal