Megosztás a következőn keresztül:


Egyenlőségi operátorok

Feljegyzés

Ezt a tartalmat a Pearson Education, Inc. engedélyével nyomtatjuk újra a Framework Design Guidelines: Conventions, Idioms és Patterns for Reusable .NET Libraries, 2nd Edition engedélyével. Ezt a kiadást 2008-ban adták ki, és a könyvet azóta teljesen átdolgozták a harmadik kiadásban. Előfordulhat, hogy az oldalon található információk némelyike elavult.

Ez a szakasz az egyenlőségi operátorok túlterhelését tárgyalja, és egyenlőségi operátorokra hivatkozik operator== és operator!= azokra is hivatkozik.

❌ NE terhelje túl az egyik egyenlőségi operátort, és ne a másikat.

✔️ A DO biztosítja, hogy Object.Equals az egyenlőségi operátorok és az egyenlőségi operátorok pontosan azonos szemantikával és hasonló teljesítményjellemzőkkel rendelkezzenek.

Ez gyakran azt jelenti, hogy Object.Equals felül kell bírálni, amikor az egyenlőségi operátorok túlterheltek.

❌ KERÜLJE az egyenlőségi operátorok kivételeit.

Például hamis értéket ad vissza, ha az egyik argumentum null a dobás NullReferenceExceptionhelyett.

Egyenlőségi operátorok értéktípusokon

✔️ DO túlterheli az egyenlőség operátorok értéktípusok, ha az egyenlőség értelmes.

A legtöbb programozási nyelvben nincs alapértelmezett implementáció az operator== értéktípusokhoz.

Egyenlőségi operátorok referenciatípusokon

❌ KERÜLJE az egyenlőségi operátorok túlterhelését a nem módosítható referenciatípusokon.

Számos nyelv rendelkezik beépített egyenlőségi operátorokkal a referenciatípusokhoz. A beépített operátorok általában a referenciaegyenlőséget valósítják meg, és sok fejlesztő meglepődik, ha az alapértelmezett viselkedést az értékegyenlőségre módosítják.

Ez a probléma enyhíthető a nem módosítható referenciatípusok esetében, mivel a megváltoztathatatlanság miatt sokkal nehezebb észrevenni a referenciaegyenlőség és az értékegyenlőség közötti különbséget.

❌ KERÜLJE a referenciatípusok egyenlőségi operátorainak túlterhelését, ha a végrehajtás jelentősen lassabb lenne, mint a referenciaegyenlőség.

© Részletek 2005, 2009 Microsoft Corporation. Minden jog fenntartva.

Reprinted by permission of Pearson Education, Inc. from Framework Design Guidelines: Conventions, Idioms and Patterns for Reusable .NET Libraries, 2nd Edition by Krzysztof Cwalina and Brad Abrams, published 22, 2008 by Addison-Wesley Professional, a Microsoft Windows Development Series részeként.

Lásd még