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