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


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

TypeName

OperatorsShouldHaveSymmetricalOverloads

CheckId

CA2226

Категория

Microsoft.Usage

Критическое изменение

Не критическое

Причина

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

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

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

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

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

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

Отключение предупреждений

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

Связанные правила

CA1046: не перегружайте оператор равенства для ссылочных типов

CA2225: для перезагрузок оператора существуют дополнения с именами

CA2224: переопределяйте равенство при перегрузке оператора равенства

CA2218: переопределяйте GetHashCode при переопределении Equals

CA2231: перегружать равенство операторов следует при перегрузке ValueType.Equals