Sdílet prostřednictvím


Operatoren sollten symmetrische Überladungen haben

Aktualisiert: November 2007

     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.

Behandlung 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

Gleichheitsoperator bei Referenztypen nicht überladen

Operatorüberladungen haben benannte Alternativen

Equals beim Überladen des Gleichheitsoperators überschreiben

GetHashCode beim Überschreiben von Equals überschreiben

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