CA2226: перегрузки операторов должны быть симметричны
TypeName |
OperatorsShouldHaveSymmetricalOverloads |
CheckId |
CA2226 |
Категория |
Microsoft.Usage |
Критическое изменение |
Не критическое |
Причина
Тип реализует оператор равенства или неравенства, но не реализует противоположный оператор.
Описание правила
Не существует ситуаций, в которых к экземплярам типа применяется оператор равенства или неравенства, а противоположный оператор не определен.Как правило, типы реализуют оператор неравенства посредством возвращения значения, противоположного результату оператора равенства.
При нарушениях данного правила компилятор C# выдает ошибку.
Устранение нарушений
Чтобы устранить нарушение данного правила, реализуйте одновременно операторы равенства и неравенства или удалите единственный существующий оператор.
Отключение предупреждений
Для этого правила отключать вывод предупреждений не следует.Тип не будет функционировать в соответствии с требованиями среды .NET Framework.
Связанные правила
CA1046: не перегружайте оператор равенства для ссылочных типов
CA2225: для перезагрузок оператора существуют дополнения с именами
CA2224: переопределяйте равенство при перегрузке оператора равенства
CA2218: переопределяйте GetHashCode при переопределении Equals
CA2231: перегружать равенство операторов следует при перегрузке ValueType.Equals