Partager via


Membres virtuels

Un membre virtual (Overridable en Visual Basic) permet de modifier le comportement d'un membre en fournissant une implémentation différente du membre. Il est généralement utilisé lorsque vous souhaitez qu'une classe dérivée du type gère les caractéristiques d'un scénario donné. Par exemple, la classe WebRequest définit les fonctionnalités d'envoi d'une demande à un URI quelconque (Universal Resource Identifier). La classe FtpWebRequest est une classe dérivée de WebRequest qui substitue ses méthodes virtuelles pour gérer l'envoi de demandes aux URI utilisant le protocole FTP.

Les membres virtuels affichent de meilleures performances que les rappels et les événements mais pas autant que les méthodes non virtuelles.

Ne changez pas vos membres en membres virtuels sauf si vous avez une bonne raison de le faire et si vous êtes conscient du coût en terme de conception, de test et de maintenance des membres virtuels.

La modification de l'implémentation d'un membre virtuel entre des versions peut provoquer des incompatibilités de version mineures. C'est la raison pour laquelle le coût lié à la conception correcte et au test approfondi des méthodes virtuelles est élevé.

Privilégiez l'accessibilité protégée au lieu de l'accessibilité publique pour les membres virtuels. Les membres publics doivent fournir l'extensibilité (si besoin est) en effectuant un appel dans un membre virtuel protégé.

Dans tous les scénarios qui ne concernent pas l'héritage, les membres doivent être publics.

Portions Copyright 2005 Microsoft Corporation. Tous droits réservés.

Portions Copyright Addison-Wesley Corporation. Tous droits réservés.

Pour plus d'informations sur les règles de conception, consultez « règles de conception d'infrastructure : Conventions idiomes et modèles carnet de bibliothèques réutilisables framework » Krzysztof Cwalina et Brad Abrams, publiés par Addison-Wesley, 2005.

Voir aussi

Autres ressources

Instructions de conception pour le développement de bibliothèques de classes

Conception en vue de l'extensibilité