Versión en inglés: http://dflying.dflying.net/1/archive/101_prefer_overrides_to_event_handlers_in_aspnet_page.html
Este es el método Page_Load() con el que estamos familiarizados. De hecho, es un controlador de eventos, que comienza a ejecutarse cuando se activa el evento Load definido en System.Web.UI.Page.
// usar controlador de eventos
Page_Load vacío protegido (remitente del objeto, EventArgs e)
{
// lógica aquí
}
Esta es la anulación del método OnLoad() en la clase System.Web.UI.Page. // usar anulación
anulación protegida anular OnLoad (EventArgs e)
{
// lógica aquí
base.OnLoad(e);
}
Aunque los dos métodos anteriores pueden realizar la misma función, recomiendo utilizar el método Override.
En primer lugar, el mecanismo de manejo de eventos se utiliza para implementar la comunicación entre objetos independientes. Por ejemplo, cuando se hace clic en un botón, la página puede conocer este mensaje a través del mecanismo de manejo de eventos y procesarlo. Pero en este ejemplo, el evento Load se define en System.Web.UI.Page y es en sí mismo parte de nuestra página. Sería extraño emitir un evento desde dentro de una clase y luego manejar el evento en sí.
En segundo lugar, en términos de eficiencia, el manejo de eventos no es tan bueno como Override. Esto está determinado por la implementación de .NET Framework y todos lo sabemos.
Además, se deben mantener dos lugares al utilizar eventos: el adjunto del método de manejo de eventos y la definición de la función de manejo de eventos en sí. Aunque ASP.NET 2.0 ya proporciona algunos nombres de métodos de manejo de eventos predefinidos, todavía hay muchos desarrolladores que utilizan ASP.NET 1.1. Al utilizar Override, solo necesita mantener la función Override.
Por supuesto, el mecanismo de procesamiento de eventos tiene sus propios beneficios, por ejemplo, es fácil especificar métodos de procesamiento de eventos en tiempo de ejecución, lo que permite ejecutar en secuencia múltiples métodos de procesamiento de eventos distribuidos en todas partes. Pero no utilizaremos estas funciones en páginas ASP.NET. Siempre tendremos un método para definir el comportamiento de la página que se está cargando y no tendremos múltiples métodos Page_Load() que aparezcan en una página.
Para ser más generales, no sólo en las páginas ASP.NET, también deberíamos usar Override en lugar de Event en otras situaciones tanto como sea posible.
Cuando utilice Override, tenga cuidado de no olvidar llamar al método de la clase base (Visual Studio lo hará por usted).
Fuente: BLOG de Dflying Chen