Přetížení členů

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é.

Přetížení člena znamená vytvoření dvou nebo více členů stejného typu, které se liší pouze v počtu nebo typu parametrů, ale mají stejný název. Například v následujícím příkladu WriteLine je metoda přetížena:

public static class Console {
    public void WriteLine();
    public void WriteLine(string value);
    public void WriteLine(bool value);
    ...
}

Protože parametry mohou mít pouze metody, konstruktory a indexované vlastnosti, lze přetížit pouze tyto členy.

Přetížení je jednou z nejdůležitějších technik pro zlepšení použitelnosti, produktivity a čitelnosti opakovaně použitelných knihoven. Přetížení počtu parametrů umožňuje poskytovat jednodušší verze konstruktorů a metod. Přetížení typu parametru umožňuje použít stejný název člena pro členy provádějící stejné operace u vybrané sady různých typů.

✔️ Zkuste použít popisné názvy parametrů k označení výchozí hodnoty používané kratšími přetíženími.

❌ Vyhněte se libovolným různým názvům parametrů v přetížení. Pokud parametr v jednom přetížení představuje stejný vstup jako parametr v jiném přetížení, parametry by měly mít stejný název.

❌ Vyhněte se nekonzistentnímu pořadí parametrů v přetížených členech. Parametry se stejným názvem by se měly ve všech přetíženích zobrazovat na stejné pozici.

✔️ Proveďte pouze nejdelší virtuální přetížení (pokud je požadována rozšiřitelnost). Kratší přetížená funkce by měla jednoduše volat na delší přetíženou funkci.

❌ NEPOUŽÍVEJTE ref nebo out modifikátory k přetížení členů.

Některé jazyky nemohou vyřešit volání na přetížené funkce jako je tato. Kromě toho mají taková přetížení obvykle zcela odlišnou sémantiku a pravděpodobně by neměla být přetížení, ale dvě samostatné metody.

❌ Nemějte přetížení s parametry na stejné pozici a s podobnými typy, a přitom s různými sémantiku.

✔️ Povolte null, aby mohl být předán pro volitelné argumenty.

✔️ Místo definování členů s výchozími argumenty používejte přetížení členů.

Výchozí argumenty nejsou kompatibilní se specifikací CLS.

Čá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.

Viz také