Partager via


DA0006 : Remplacer Equals() pour les types valeur

ID de la règle

DA0006

Catégorie

Utilisation du .NET Framework

Méthodes de profilage

Échantillonnage

Message

Remplacer Equals et l'opérateur d'égalité pour les types valeur.

Type Messge

Avertissement

Cause

Les appels à la méthode Equals ou les opérateurs d'égalité d'un type valeur public représentent une proportion significative des données de profilage.Envisagez d'implémenter une méthode plus efficace.

Description de la règle

Pour les types valeur, l'implémentation héritée de Equals utilise la bibliothèque System.Reflection et compare le contenu de tous les champs dans le type.Le processus de réflexion sollicite fortement les ressources informatiques et la comparaison de chaque champ à la recherche d'une égalité peut s'avérer inutile.Si des utilisateurs sont susceptibles de comparer ou de trier des instances, ou de les utiliser en tant que clés de table de hachage, votre type valeur doit implémenter Equals.Si votre langage de programmation prend en charge la surcharge d'opérateur, vous devez également fournir une implémentation des opérateurs d'égalité et d'inégalité.

Pour plus d'informations sur la substitution de Equals et des opérateurs d'égalité, consultez Guidelines for Implementing Equals and the Equality Operator (==).

Comment examiner un avertissement

Pour obtenir un exemple de l'implémentation des opérateurs Equals et d'égalité, consultez la règle d'analyse du code CA1815 : Remplacez Equals et l'opérateur égal à dans les types valeur