Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Remarque
Ce contenu est réimprimé avec l’autorisation de Pearson Education, Inc. tiré de Lignes directrices de conception de framework : Conventions, Idiomes et Modèles pour les bibliothèques .NET réutilisables, 2ème édition. Cette édition a été publiée en 2008, et le livre a été entièrement révisé dans la troisième édition. Certaines informations de cette page peuvent être obsolètes.
Cette section décrit les opérateurs d’égalité surchargés et fait référence à operator== et operator!= en tant qu’opérateurs d’égalité.
❌ NE surchargez PAS l’un des opérateurs d’égalité par rapport à l’autre.
✔️ Assurez-vous que Object.Equals et les opérateurs d’égalité ont exactement les mêmes sémantiques et les mêmes caractéristiques de performances.
En général, cela signifie que Object.Equals doit être remplacé lorsque les opérateurs d’égalité sont surchargés.
❌ ÉVITEZ de lever des exceptions des opérateurs d’égalité.
Par exemple, retournez false si l’un des arguments est null au lieu de lever NullReferenceException.
Opérateurs d’égalité sur les types valeur
✔️ SURCHARGEZ les opérateurs d’égalité sur les types valeur, si l’égalité est significative.
Dans la plupart des langages de programmation, il n’existe aucune implémentation par défaut pour operator== les types valeur.
Opérateurs d’égalité sur les types référence
❌ ÉVITEZ de surcharger les opérateurs d’égalité sur les types référence mutables.
De nombreux langages ont des opérateurs d’égalité intégrés pour les types de référence. Les opérateurs intégrés implémentent généralement l’égalité de référence, et de nombreux développeurs sont surpris lorsque le comportement par défaut est remplacé par l’égalité des valeurs.
Ce problème est atténué pour les types de référence immuables, car l’immuabilité rend beaucoup plus difficile la différence entre l’égalité de référence et l’égalité des valeurs.
❌ Évitez de surcharger les opérateurs d’égalité sur les types de référence si l’implémentation serait considérablement plus lente que celle de l’égalité de référence.
Portions © 2005, 2009 Microsoft Corporation. Tous les droits réservés.
Réimprimé par l’autorisation de Pearson Education, Inc. tiré de Framework Design Guidelines : Conventions, Idioms et Patterns pour les bibliothèques .NET réutilisables, 2e édition par Krzysztof Cwalina et Brad Abrams, publié le 22 octobre 2008 par Addison-Wesley Professional dans le cadre de la Série de développement Microsoft Windows.