CA2226: Operatory powinny być przeciążane symetrycznie
TypeName |
OperatorsShouldHaveSymmetricalOverloads |
CheckId |
CA2226 |
Kategoria |
Microsoft.Usage |
Zmiana kluczowa |
Niekluczowa |
Przyczyna
Typ implementuje operator równości lub nierówności, ale nie implementuje operatora przeciwnego.
Opis reguły
Nie występują okoliczności, w których równość lub nierówność jest stosowana do wystąpień typu i przeciwny operator jest niezdefiniowany.Typy zazwyczaj implementują operator nierówności przez zwrócenie zanegowanej wartości operatora równości.
Kompilator C# zgłasza błąd naruszenia tej reguły.
Jak naprawić naruszenia
Aby naprawić naruszenie tej zasady, należy zaimplementować operatory równości i nierówności lub usunąć ten, który jest obecny.
Kiedy pominąć ostrzeżenia
Nie pomijaj ostrzeżeń dla tej reguły.Typ nie będzie działać w sposób zgodny z .NET Framework.
Powiązane reguły
CA1046: Nie przeciążaj operatora equals w typach referencyjnych
CA2225: Operator overloads ma nazwanych zastępców
CA2224: Zastąp metodę equals przeciążając operator equals
CA2218: Zastąp GetHashCode przy zastępowaniu Equals
CA2231: Przeciąż operator equals przy zastępowaniu ValueType.Equals