Gelijkheidsoperators
Notitie
Deze inhoud wordt opnieuw afgedrukt door toestemming van Pearson Education, Inc. van Framework Design Guidelines: Conventions, Idioms en Patterns for Reusable .NET Libraries, 2nd Edition. Die editie werd in 2008 gepubliceerd en het boek is sindsdien volledig herzien in de derde editie. Sommige informatie op deze pagina is mogelijk verouderd.
In deze sectie worden overbelasting van gelijkheidsoperators besproken en wordt verwezen naar operator==
en operator!=
als gelijkheidsoperators.
❌ NIET overbelast een van de gelijkheidsoperators en niet de andere.
✔️ Zorg ervoor dat Object.Equals en de gelijkheidsoperatoren precies dezelfde semantiek en vergelijkbare prestatiekenmerken hebben.
Dit betekent vaak dat Object.Equals
moet worden overschreven wanneer de gelijkheidsoperatoren overbelast zijn.
❌ VERMIJD het genereren van uitzonderingen van gelijkheidsoperators.
Retourneer bijvoorbeeld onwaar als een van de argumenten null is in plaats van te NullReferenceException
gooien.
Gelijkheidsoperators voor waardetypen
✔️ DOE de gelijkheidsoperators over op waardetypen, als gelijkheid zinvol is.
In de meeste programmeertalen is er geen standaard implementatie van operator==
voor waardetypen.
Gelijkheidsoperators voor referentietypen
❌ VERMIJD overbelasting van gelijkheidsoperators voor veranderlijke referentietypen.
Veel talen hebben ingebouwde gelijkheidsoperators voor referentietypen. De ingebouwde operators implementeren meestal de referentie gelijkheid en veel ontwikkelaars zijn verbaasd wanneer het standaardgedrag wordt gewijzigd in de gelijkheid van waarden.
Dit probleem wordt verholpen voor onveranderbare verwijzingstypen, omdat onveranderbaarheid het verschil tussen gelijkheid en gelijkheid van waarden veel moeilijker kan zien.
❌ VERMIJD overbelasting van gelijkheidsoperators voor referentietypen als de implementatie aanzienlijk trager zou zijn dan die van referentie gelijkheid.
© Delen 2005, 2009 Microsoft Corporation. Alle rechten voorbehouden.
Herdrukt door toestemming van Pearson Education, Inc. van Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition by Krzysztof Cwalina and Brad Abrams, published oct 22, 2008 by Addison-Wesley Professional als onderdeel van de Microsoft Windows Development Series.