Partager via


Les opérateurs doivent contenir des surcharges symétriques

Mise à jour : novembre 2007

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

Ne pas surcharger l'opérateur égal (equals) sur les types référence

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

Subsituez Equals au moment de surcharger l'opérateur égal (equals)

Substituez GetHashCode au moment de substituer Equals

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