Operators should have symmetrical overloads
TypeName |
OperatorsShouldHaveSymmetricalOverloads |
CheckId |
CA2226 |
Category |
Microsoft.Usage |
Breaking Change |
NonBreaking |
Cause
A type implements the equality or inequality operator and does not implement the opposite operator.
Rule Description
There are no circumstances where either equality or inequality is applicable to instances of a type, and the opposite operator is undefined. Types typically implement the inequality operator by returning the negated value of the equality operator.
The C# compiler issues an error for violations of this rule.
How to Fix Violations
To fix a violation of this rule, implement both the equality and inequality operators, or remove the one that is present.
When to Exclude Warnings
Do not exclude a warning from this rule. Your type will not work in a manner that is consistent with the .NET Framework.
Related Rules
Do not overload operator equals on reference types
Operator overloads have named alternates
Override equals on overloading operator equals