Какова цель проведения мероприятия? - PullRequest
1 голос
/ 24 августа 2009

В чем преимущество повышения и события в элементах управления asp.net?

Ответы [ 3 ]

5 голосов
/ 24 августа 2009

Чтобы позволить кому-то еще выполнять код, когда вы что-то делаете, без необходимости опроса вашего состояния, чтобы узнать, что вы сделали.

2 голосов
/ 24 августа 2009

Целью вызова события обычно является информирование о том, что произошло или должно произойти в коде, чтобы позволить другим частям программы реагировать на это. Обычно события разрабатываются таким образом, чтобы код, который вызывает событие, работал одинаково, независимо от того, есть ли подключенные прослушиватели (обработчики событий) или нет.

Одним из примеров будет событие нажатия кнопки. Когда пользователь нажимает кнопку, кнопка вызывает событие click, что позволит любому подключенному обработчику событий что-то делать. Но если не подключен обработчик событий, кнопка не изменит свое поведение (просто ничего не произойдет).

Хотя большинство событий возникает для информирования о том, что что-то произошло , есть некоторые события, которые инициируются для информирования о том, что что-то должно произойти . Иногда эти события используют класс EventArgs со свойствами чтения / записи (в отличие от свойств только для чтения, которые чаще встречаются в классах EventArgs), что позволяет слушателю события передавать данные обратно в код, вызывающий события. Я не могу придумать ни одного хорошего примера asp.net из головы, но в мире winforms типичным примером этого было бы событие Form.Closing, где обработчик события может установить e.Cancel = true для предотвращения закрытия формы.

Таким образом, в пользовательском элементе управления было бы полезно вызывать событие всякий раз, когда это может представлять интерес для внешнего кода (обычно страницы) для реакции на то, что происходит внутри элемента управления.

0 голосов
/ 24 августа 2009

Чтобы добавить к другим ответам уже здесь, позвольте мне использовать аналогию для объяснения событий.

Предположим, вы хотите получать газеты каждый день. Вы звоните в газетную компанию, чтобы сообщить им, что хотите получать новые газеты, которые они могут печатать - вы «подписываетесь» на газету. Люди, доставляющие газету, ведут список людей, которые являются подписчиками - люди, которые должны получить газету. Когда газета печатается каждый день, если вы находитесь в списке подписчиков, вы получите газету.

Теперь предположим, что у вас есть объект - например, кнопка. Предположим, вы хотите знать, когда эта кнопка нажата. Вы «подписываетесь» на события - в частности, «OnClick» или «OnPressed», или как там их можно назвать на вашем языке использования. Всякий раз, когда пользователь нажимает кнопку, кнопка просматривает список своих подписчиков и вызывает функцию, предоставленную каждому. Это «обработчики событий». Эти функции - то, что подписчики хотят вызвать, когда происходит событие. На английском языке абонент может сказать «Когда вы нажмете, вызовите функцию MyOnClick ()».

События используются во многих парадигмах программирования, чтобы справляться со сложностью - события не должны ничего знать об обработчиках событий, и наоборот. Это обеспечивает более слабую связь и более модульный, многократно используемый код.

Предлагаю вам прочитать о Observer Pattern , так как это основа для событий и обработчиков событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...