CA2226: перегрузки операторов должны быть симметричны
Свойство | Значение |
---|---|
Идентификатор правила | CA2226 |
Заголовок | Перегрузки операторов должны быть симметричными |
Категория | Использование |
Исправление является критическим или не критическим | Не критическое |
Включен по умолчанию в .NET 9 | No |
Причина
Тип реализует оператор равенства или неравенства, но не реализует противоположный оператор.
По умолчанию это правило проверяет только видимые извне типы, но это поведение можно настроить.
Описание правила
Отсутствуют обстоятельства, в которых равенство или неравенство применимо к экземплярам типа, а противоположный оператор не определен. Типы обычно реализуют оператор неравенства, возвращая отрицательное значение оператора равенства.
Компилятор C# выдает ошибку при нарушении этого правила.
Устранение нарушений
Чтобы устранить нарушение этого правила, реализуйте операторы равенства и неравенства или удалите существующий оператор.
Когда лучше отключить предупреждения
Для этого правила отключать вывод предупреждений не следует. В противном случае тип не будет согласованно работать с .NET.
Настройка кода для анализа
Используйте следующий параметр, чтобы выбрать части базы кода для применения этого правила.
Этот параметр можно настроить только для этого правила, для всех правил, к которым он применяется, или для всех правил в этой категории (использование), к которым она применяется. Дополнительные сведения см. в статье Параметры конфигурации правила качества кода.
Включение определенных контактных зон API
Вы можете настроить, для каких частей базы кода следует выполнять это правило в зависимости от их доступности. Например, чтобы указать, что правило должно выполняться только для закрытой контактной зоны API, добавьте следующую пару "ключ-значение" в файл EDITORCONFIG в своем проекте:
dotnet_code_quality.CAXXXX.api_surface = private, internal