Partage via


Surcharge de membre

Remarque

Ce contenu est réimprimé avec l’autorisation de Pearson Education, Inc. tiré de Lignes directrices de conception de framework : Conventions, Idiomes et Modèles pour les bibliothèques .NET réutilisables, 2ème édition. Cette édition a été publiée en 2008, et le livre a été entièrement révisé dans la troisième édition. Certaines informations de cette page peuvent être obsolètes.

La surcharge des membres signifie créer deux membres ou plus sur le même type qui diffèrent uniquement dans le nombre ou le type de paramètres, mais qui ont le même nom. Par exemple, dans les éléments suivants, la WriteLine méthode est surchargée :

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

Étant donné que seules les méthodes, les constructeurs et les propriétés indexées peuvent avoir des paramètres, seuls ces membres peuvent être surchargés.

La surcharge est l’une des techniques les plus importantes pour améliorer la facilité d’utilisation, la productivité et la lisibilité des bibliothèques réutilisables. La surcharge du nombre de paramètres permet de fournir des versions plus simples des constructeurs et des méthodes. La surcharge sur le type de paramètre permet d’utiliser le même nom de membre pour les membres effectuant des opérations identiques sur un ensemble sélectionné de différents types.

✔️ Essayez d’utiliser des noms de paramètres descriptifs pour indiquer la valeur par défaut utilisée par des surcharges plus courtes.

❌ ÉVITEZ de varier arbitrairement les noms de paramètres dans les surcharges. Si un paramètre d’une surcharge représente la même entrée qu’un paramètre dans une autre surcharge, les paramètres doivent avoir le même nom.

❌ ÉVITEZ d’être incohérent dans l'ordre des paramètres au sein des membres surchargés. Les paramètres portant le même nom doivent apparaître à la même position dans toutes les surcharges.

✔️ NE créez QUE la plus longue surcharge virtuelle (si l’extensibilité est requise). Les surcharges plus courtes doivent simplement appeler à une surcharge plus longue.

❌ N’utilisez pas ref ou out de modificateurs pour surcharger les membres.

Certains langages ne peuvent pas résoudre les appels aux surcharges de cette manière. En outre, ces surcharges ont généralement une sémantique complètement différente et ne doivent probablement pas être des surcharges, mais deux méthodes distinctes à la place.

❌ NE PAS avoir de surcharges avec des paramètres à la même position et des types similaires, mais avec une sémantique différente.

✔️ VEUILLEZ permettre le passage de null pour des arguments facultatifs.

✔️ UTILISEZ la surcharge des membres plutôt que de définir des membres avec des arguments par défaut.

Les arguments par défaut ne sont pas conformes à CLS.

Portions © 2005, 2009 Microsoft Corporation. Tous les droits réservés.

Réimprimé par l’autorisation de Pearson Education, Inc. tiré de Framework Design Guidelines : Conventions, Idioms et Patterns pour les bibliothèques .NET réutilisables, 2e édition par Krzysztof Cwalina et Brad Abrams, publié le 22 octobre 2008 par Addison-Wesley Professional dans le cadre de la Série de développement Microsoft Windows.

Voir aussi