Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

События .NET

Читайте также:
  1. XV. НЕКОТОРЫЕ ИСТОРИЧЕСКИЕ ЛИЧНОСТИ И СОБЫТИЯ
  2. А вот теперь можно ответить на вопрос, поставленный телеведущим канала «Россия 1»: как же так получилось, что события в Киеве, описанные Булгаковым, повторились через 96 лет?
  3. Аксиоматическое определение вероятности события.
  4. Богов активизируют люди и события
  5. Во Вселенной происходят такие события, сотворение или инициирование которых тебе не может приписать даже самый необузданный полет воображения.
  6. Возникает вопрос – что проявляет те или иные данные в человеке? – данные которые человек накопил за свою жизнь проявляются в человеке через события которые с ним происходят.
  7. Все происходило. Все уже происходило. Любая возможность существует как факт, как свершившиеся события.

Понимали это и разработчики, создававшие среду.NET. Для решения этой задачи они ввели специальное поле-событие, которое автоматически вводит поле-делегат и два дополнительных метода, обслуживающих его. Таким образом, автоматически реализуется представленная выше модель.

В языке высокого уровня C# определение таких полей осуществляется при помощи ключевого слова event. Также компилятор берет на себя заботу о работе с этими полями-событиями, благодаря чему к ним можно прибавлять и вычитать делегаты, хотя они, по сути дела, таковыми не являются. Приведем наглядный пример использования полей-событий (листинг 13).

Листинг 13. Использование полей-событий.

using System; // Введем собственный делегат, не принимающий // никаких значений. delegate void MyDelegate(); // Это тестовый класс, он представляет собой гипотетический // компонент кнопки. class Button { // Введем общедоступное событие, к которому // смогут подключаться все желающие. public event MyDelegate Click; // Данная функция необходима для того, чтобы // симулировать событие нажатия на кнопку. public void SimulateClick() { // Вызываем функции, связанные с событием Click, // предварительно проверив, зарегистрировался // ли кто-нибудь в данном событии. if (Click!= null) Click(); } };   class App { static void Main() { // Создаем экземпляр класса/компонента. Button sc = new Button(); // Добавляем обработчик к его событию. sc.Click += new MyDelegate(Handler); // Сами вызовем функцию, которая инициирует // возникновение события нажатия на кнопку. sc.SimulateClick(); } // А это функция-обработчик события нажатия на кнопку. static void Handler() { Console.WriteLine("Hello, World!"); } };

В результате работы приложения, на консоль будет выведена следующая строка:

Hello, World!

Таким образом, работа с событиями представляется предельно простой. Она, по сути дела, ничем не отличается от взаимодействия с обыкновенными делегатами.


Дата добавления: 2015-07-26; просмотров: 67 | Нарушение авторских прав


Читайте в этой же книге: Общие сведения | Создаем собственный делегат | Делегат и экземплярные методы | Свойства | Пример использования свойств Method и Target | MulticastDelegate.DynamicInvoke | MulticastDelegate.Combine и MulticastDelegate.Remove | MulticastDelegate.GetInvocationList | Список делегатов — EventHandlerList | Стандартный делегат общей библиотеки |
<== предыдущая страница | следующая страница ==>
Как устроены события и зачем они нужны| Контроль над событиями

mybiblioteka.su - 2015-2024 год. (0.006 сек.)