Version anglaise : http://dflying.dflying.net/1/archive/101_prefer_overrides_to_event_handlers_in_aspnet_page.html
Il s'agit de la méthode Page_Load() que nous connaissons. En fait, il s'agit d'un gestionnaire d'événements, qui commence à s'exécuter lorsque l'événement Load défini dans System.Web.UI.Page est déclenché.
// utilise le gestionnaire d'événements
protected void Page_Load (expéditeur de l'objet, EventArgs e)
{
// logique ici
}
Il s'agit du remplacement de la méthode OnLoad() dans la classe System.Web.UI.Page. // utilise le remplacement
remplacement protégé void OnLoad (EventArgs e)
{
// logique ici
base.OnLoad(e);
}
Bien que les deux méthodes ci-dessus puissent accomplir la même fonction, je recommande d'utiliser la méthode Override.
Tout d’abord, le mécanisme de gestion des événements est utilisé pour implémenter la communication entre objets indépendants. Par exemple, lorsqu'un bouton est cliqué, la page peut apprendre ce message via le mécanisme de gestion des événements et le traiter. Mais dans cet exemple, l'événement Load est défini dans System.Web.UI.Page et fait lui-même partie de notre page. Il serait étrange d'émettre un événement depuis une classe puis de gérer l'événement lui-même.
Deuxièmement, en termes d'efficacité, la gestion des événements n'est pas aussi bonne que Override. Ceci est déterminé par la mise en œuvre du .NET Framework et nous le savons tous.
De plus, deux endroits doivent être conservés lors de l'utilisation d'événements : l'attachement de la méthode de gestion des événements et la définition de la fonction de gestion des événements elle-même. Bien qu'ASP.NET 2.0 fournisse déjà des noms de méthodes de gestion d'événements prédéfinis, de nombreux développeurs utilisent encore ASP.NET 1.1. Lorsque vous utilisez Override, il vous suffit de conserver la fonction Override elle-même.
Bien entendu, le mécanisme de traitement des événements a ses propres avantages. Par exemple, il est facile de spécifier des méthodes de traitement des événements au moment de l'exécution, ce qui permet d'exécuter en séquence plusieurs méthodes de traitement des événements réparties partout. Mais nous n'utiliserons pas ces fonctionnalités dans les pages ASP.NET. Nous aurons toujours une méthode pour définir le comportement de la page en cours de chargement, et nous n'aurons pas plusieurs méthodes Page_Load() apparaissant sur une page.
Pour être plus général, non seulement dans les pages ASP.NET, nous devrions également utiliser autant que possible Override au lieu de Event dans d'autres situations.
Lorsque vous utilisez Override, veillez à ne pas oublier d'appeler la méthode de la classe de base (Visual Studio le fera pour vous).
Source : BLOG Dflying Chen