Udostępnij za pośrednictwem


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