Partager via


CA2226 : Les opérateurs doivent contenir des surcharges symétriques

TypeName

OperatorsShouldHaveSymmetricalOverloads

CheckId

CA2226

Catégorie

Microsoft.Usage

Modification avec rupture

Modification sans rupture

Cause

Un type implémente l'opérateur d'égalité ou d'inégalité et n'implémente pas l'opérateur opposé.

Description de la règle

Dans aucune circonstance l'égalité ou l'inégalité ne s'applique aux instances d'un type, et l'opérateur opposé est indéfini. Les types implémentent en général l'opérateur d'inégalité en retournant la valeur de négation de l'opérateur d'égalité.

Le compilateur C# émet une erreur pour les violations de cette règle.

Comment corriger les violations

Pour corriger une violation de cette règle, implémentez à la fois les opérateurs d'égalité et d'inégalité, ou supprimez celui qui est présent.

Quand supprimer les avertissements

Ne supprimez aucun avertissement de cette règle. Votre type ne fonctionnera pas de manière cohérente avec le .NET Framework.

Règles connexes

CA1046 : Ne pas surcharger l'opérateur égal à sur les types référence

CA2225 : Les surcharges d'opérateur offrent d'autres méthodes nommées

CA2224 : Remplacez Equals au moment de surcharger l'opérateur égal

CA2218 : Remplacez GetHashCode au moment de remplacer Equals

CA2231 : Surchargez l'opérateur égal (equals) en remplaçant ValueType.Equals