Английская версия: http://dflying.dflying.net/1/archive/101_prefer_overrides_to_event_handlers_in_aspnet_page.html
Это знакомый нам метод Page_Load(). По сути, это обработчик событий, который начинает выполняться при запуске события Load, определенного в System.Web.UI.Page.
// используем обработчик событий
protected void Page_Load (отправитель объекта, EventArgs e)
{
// здесь логика
}
Это переопределение метода OnLoad() в классе System.Web.UI.Page. // используем переопределение
защищенное переопределение void OnLoad (EventArgs e)
{
// здесь логика
base.OnLoad(е);
}
Хотя оба вышеуказанных метода могут выполнять одну и ту же функцию, я рекомендую использовать метод Override.
Прежде всего, механизм обработки событий используется для реализации связи между независимыми объектами. Например, при нажатии кнопки страница может узнать это сообщение через механизм обработки событий и обработать его. Но в этом примере событие Load определено в System.Web.UI.Page и само по себе является частью нашей страницы. Было бы странно генерировать событие внутри класса, а затем обрабатывать его само.
Во-вторых, с точки зрения эффективности обработка событий не так хороша, как Override. Это определяется реализацией .NET Framework, и мы все это знаем.
Кроме того, при использовании событий необходимо сохранять два места: прикрепление метода обработки событий и определение самой функции обработки событий. Хотя ASP.NET 2.0 уже предоставляет некоторые предопределенные имена методов обработки событий, многие разработчики все еще используют ASP.NET 1.1. При использовании Override вам нужно поддерживать только саму функцию Override.
Конечно, механизм обработки событий имеет свои преимущества. Например, во время выполнения можно легко указать методы обработки событий, что позволяет последовательно выполнять несколько методов обработки событий, распределенных повсюду. Но мы не будем использовать эти функции на страницах ASP.NET. У нас всегда будет метод, определяющий поведение загружаемой страницы, и на странице не будет нескольких методов Page_Load().
В более общем смысле, не только на страницах ASP.NET, нам также следует использовать Override вместо Event и в других ситуациях, насколько это возможно.
При использовании Override будьте осторожны и не забудьте вызвать метод базового класса (Visual Studio сделает это за вас).
Источник: БЛОГ Dflying Chen