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