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