2009-12-22 2 views
2

Si je crée un Abstract BaseForm pour mon application Windows, je peux l'utiliser pour faire des choses courantes lorsque les formulaires de l'application sont chargés. Je peux également override la méthode OnLoad, ou Je suis abonné à l'événement Load (BaseForm_Load).Dois-je hériter ou m'abonner à des événements?

Quelle approche est la meilleure du point de vue de la conception et de la performance?

Répondre

5

En général, si vous implémentez une classe de base (ex: le sous-classement formulaire), il est préférable de remplacer les méthodes de la classe de base. Cela vaut mieux pour plusieurs raisons: ces méthodes sont généralement appliquées en premier lieu et sont toujours garanties (si vous utilisez l'événement, d'autres méthodes peuvent être exécutées via d'autres abonnés, ce qui pourrait interférer avec votre méthode). De plus, il y a (légèrement) moins de frais généraux à faire.

Probablement la meilleure raison, cependant, est que c'est la pratique acceptée, ce qui rend votre code plus maintenable, en particulier par d'autres développeurs.

1

Sauf si j'ai besoin de modifier le comportement de OnLoad(), je préférerais utiliser l'abonnement à l'événement Load. C'est plus lent, mais je considère que c'est conceptuellement plus correct.

Also see similar question

Questions connexes