CA2226: Operators should have symmetrical overloads
Note
This article applies to Visual Studio 2015. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here
Item | Value |
---|---|
TypeName | OperatorsShouldHaveSymmetricalOverloads |
CheckId | CA2226 |
Category | Microsoft.Usage |
Breaking Change | Non Breaking |
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 Suppress Warnings
Do not suppress a warning from this rule. Your type will not work in a manner that is consistent with the .NET Framework.
Related Rules
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