Share via


Overbelasting van leden

Opmerking

Deze inhoud wordt opnieuw afgedrukt met toestemming van Pearson Education, Inc. uit Framework Design Guidelines: Conventies, idioom en patronen voor herbruikbare .NET-bibliotheken, 2e editie. 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.

Overladen van methoden betekent dat u twee of meer methoden met dezelfde naam maakt binnen hetzelfde type, die alleen verschillen in het aantal of het type parameters. In het volgende voorbeeld wordt de WriteLine methode overbelast:

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

Omdat alleen methoden, constructors en geïndexeerde eigenschappen parameters kunnen hebben, kunnen alleen die leden overbelast raken.

Overbelasting is een van de belangrijkste technieken voor het verbeteren van bruikbaarheid, productiviteit en leesbaarheid van herbruikbare bibliotheken. Door overbelasting van het aantal parameters is het mogelijk om eenvoudigere versies van constructors en methoden te bieden. Door het type van de parameter te overbelasten, kunt u dezelfde naam voor het lid gebruiken voor leden die dezelfde bewerkingen uitvoeren op een geselecteerde set van verschillende typen.

✔️ Probeer de beschrijvende parameternamen te gebruiken om de standaardwaarde aan te geven die wordt gebruikt door kortere overbelastingen.

❌ VERMIJD willekeurige verschillende parameternamen in overbelastingen. Als een parameter in een overbelasting dezelfde invoer vertegenwoordigt als een parameter in een andere overbelasting, moeten de parameters dezelfde naam hebben.

❌ VERMIJD inconsistent te zijn in de volgorde van parameters in overbelaste leden. Parameters met dezelfde naam moeten op dezelfde positie in alle overbelastingen worden weergegeven.

✔️ DOE alleen de langste overbelasting virtueel (als uitbreidbaarheid vereist is). Kortere overbelastingen moeten gewoon doorbellen naar een langere overbelasting.

❌GEBRUIK NIET ref of out modifiers om leden te overbelasten.

Sommige talen kunnen oproepen naar overload-functies zoals deze niet verwerken. Bovendien hebben dergelijke overbelastingen meestal volledig andere semantiek en moeten ze waarschijnlijk niet overbelast zijn, maar in plaats daarvan twee afzonderlijke methoden.

❌ NIET overbelastingen met parameters op dezelfde positie en vergelijkbare typen, maar met verschillende semantiek.

✔️ STA TOE dat null wordt doorgegeven voor optionele argumenten.

✔️ GEBRUIK ledenoverbelasting in plaats van het definiëren van leden met standaardargumenten.

Standaardargumenten zijn niet cls-compatibel.

© Gedeelten 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, gepubliceerd 22 oktober 2008 door Addison-Wesley Professional als onderdeel van de Microsoft Windows Development Series.

Zie ook