Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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