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


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

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

Причина

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

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

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

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

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

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

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

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

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

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

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

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

Включите конкретные поверхности API

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

dotnet_code_quality.CAXXXX.api_surface = private, internal

Заметка

Замените XXXX частью CAXXXX идентификатором применимого правила.