CA2226: Operatoren sollten symmetrische Überladungen aufweisen

TypeName

OperatorsShouldHaveSymmetricalOverloads

CheckId

CA2226

Kategorie

Microsoft.Usage

Unterbrechende Änderung

Nicht unterbrechend

Ursache

Ein Typ implementiert den Gleichheits- oder Ungleichheitsoperator, ohne den entgegengesetzten Operator zu implementieren.

Regelbeschreibung

Es gibt keine Umstände, unter denen der Gleichheits- oder Ungleichheitsoperator auf Instanzen eines Typs anwendbar ist und der entgegengesetzte Operator nicht definiert ist.Typen implementieren i. d. R. den Ungleichheitsoperator, indem der negierte Wert des Gleichheitsoperators zurückgegeben wird.

Der C#-Compiler gibt bei Verstößen gegen diese Regel einen Fehler heraus.

Behandeln von Verstößen

Um einen Verstoß gegen diese Regel zu beheben, implementieren Sie sowohl Gleichheits- und Ungleichheitsoperator, oder entfernen Sie die vorhandene Operatorimplementierung.

Wann sollten Warnungen unterdrückt werden?

Unterdrücken Sie keine Warnung dieser Regel.Der Typ verfügt sonst über kein mit .NET Framework konsistentes Verhalten.

Verwandte Regeln

CA1046: Gleichheitsoperator für Referenztypen nicht überladen

CA2225: Operatorüberladungen weisen benannte Alternativen auf

CA2224: Equals beim Überladen von Gleichheitsoperatoren überschreiben

CA2218: GetHashCode beim Überschreiben von Equals überschreiben

CA2231: Überladen Sie den Gleichheitsoperator beim Überschreiben von ValueType.Equals