Почему события WebControl имеют префикс "On"?
Я пытаюсь полностью понять модель событий WebForm (не жизненный цикл страницы, а то, как события подключаются при указании декларативно в .aspx или .файлов ascx.
берем кнопку, например. Он имеет событие щелчка, к которому вы можете подключиться в коде, но в нем есть событие "OnClick".аспн/.файл ascx.
Я использовал отражатель .NET, и элемент управления Button имеет защищенный метод OnClick, но он не должен быть доступен для назначения по.аспн/.ascx вносятся. Если я что-то упускаю.
кто-нибудь знает, почему добавлен префикс "On"?
просто чтобы уточнить немного: я понимаю, что соглашение об именах работает. Я хотел бы знать, как "OnClick "в.аспн/.ascx переводится на .Нажмите += новый EventHandler (blahName); т. е. если я создаю ControlChanged EventHandler, нужно ли мне делать что-то особенное, чтобы OnControlChanged отображался достоверно .аспн/.файл ascx?
4 ответов
это больше, чем соглашение об именах, потому что события в пользовательских элементах управления автоматически получают префикс "On" в декларативном синтаксисе.
например, у меня есть UserControl, который объявляет событие ProjectSelected. Чтобы добавить обработчик декларативно, я устанавливаю атрибут OnProjectSelected.
UserControl:
public event EventHandler<ProjectSelectedEventArgs> ProjectSelected;
добавление обработчика декларативно:
<user:ProjectList id="uxProjectList" runat="server"
OnProjectSelected="uxProjectList_ProjectSelected" />
добавление обработчика в коде:
uxProjectList.ProjectSelected += uxProjectList_ProjectSelected;
это смутило черт возьми меня дважды, один раз, когда я не мог понять, почему событие не было доступно декларативно, и снова, когда я назвал событие "OnProjectSelected", и атрибут стал "OnOnProjectSelected".
те хранят ссылки на делегатов, что вызывающий код будет подключаться с помощью событий; для того, чтобы различать само событие и делегат.
Это просто соглашение об именах, используемое при создании событий. Онсометингхэппен ... OnClick, OnChange, OnClose. Я не думаю, что есть что-то магическое и зловещее, это просто конвенции.
семантически это в основном старый возврат к традициям VB, где слушатели событий обычно назывались OnWhatever. Старые привычки умирают с трудом.