CA2226: Operators should have symmetrical overloads
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at CA2226: Operators should have symmetrical overloads.
TypeName|OperatorsShouldHaveSymmetricalOverloads|
|CheckId|CA2226|
|Category|Microsoft.Usage|
|Breaking Change|Non Breaking|
A type implements the equality or inequality operator and does not implement the opposite operator.
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.
To fix a violation of this rule, implement both the equality and inequality operators, or remove the one that is present.
Do not suppress a warning from this rule. Your type will not work in a manner that is consistent with the .NET Framework.
CA1046: Do not overload operator equals on reference types
CA2225: Operator overloads have named alternates
CA2224: Override equals on overloading operator equals
CA2218: Override GetHashCode on overriding Equals
CA2231: Overload operator equals on overriding ValueType.Equals