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