Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Tento obsah je znovu vytištěn oprávněním Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms a Patterns for Reusable .NET Libraries, 2. vydání. Tato edice byla publikována v roce 2008 a kniha byla od té doby plně upravena ve třetím vydání. Některé informace na této stránce můžou být zastaralé.
Tato část popisuje přetížení operátorů rovnosti a odkazuje na operator== a operator!= jako na operátory rovnosti.
❌ NEPŘETĚŽUJTE jeden z operátorů rovnosti, nikoli druhý.
✔️ Zajistěte, aby Object.Equals a operátory rovnosti měly přesně stejnou sémantiku a podobné charakteristiky výkonu.
To často znamená, že Object.Equals je potřeba přepsat, když jsou operátory rovnosti přetížené.
❌ Vyhněte se vyvolání výjimek z operátorů rovnosti.
Například vrátí hodnotu false, pokud jeden z argumentů je null místo vyvolání NullReferenceException.
Operátory rovnosti u typů hodnot
✔️ Přetěžujte operátory rovnosti u typů hodnot, pokud je rovnost smysluplná.
Ve většině programovacích operator== jazyků neexistuje výchozí implementace pro typy hodnot.
Operátory rovnosti u referenčních typů
❌ Vyhněte se přetížení operátorů rovnosti u proměnlivých referenčních typů.
Mnoho jazyků má předdefinované operátory rovnosti pro odkazové typy. Předdefinované operátory obvykle implementují rovnost odkazů a mnoho vývojářů je překvapeno, když se výchozí chování změní na rovnost hodnot.
Tento problém je zmírněn u neměnných referenčních typů, protože neměnnost činí mnohem těžší vnímat rozdíl mezi rovností odkazů a rovností hodnot.
❌ Vyhněte se přetížení operátorů rovnosti u referenčních typů, pokud by implementace byla výrazně pomalejší než referenční rovnost.
Části z © 2005, 2009 Microsoft Corporation. Všechna práva vyhrazena.
Přetištěno se svolením Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition od Krzysztofa Cwaliny a Brada Abramse, vydáno 22. října 2008 nakladatelstvím Addison-Wesley Professional jako součást série Microsoft Windows Development.