Overbelasting van leden
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.
Overbelasting van leden betekent dat u twee of meer leden maakt op hetzelfde type dat alleen verschilt in het aantal of het type parameters, maar dezelfde naam heeft. 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 overbelasting van het parametertype te gebruiken, kunt u dezelfde lidnaam gebruiken voor leden die identieke bewerkingen uitvoeren op een geselecteerde set 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 of out
modifiers NIET ref
om leden te overbelasten.
Sommige talen kunnen oproepen naar overbelastingen als deze niet oplossen. 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.
✔️ TOESTAAN null
om door te geven voor optionele argumenten.
✔️ GEBRUIK overbelasting van leden in plaats van leden te definiëren met standaardargumenten.
Standaardargumenten zijn niet cls-compatibel.
© 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.