Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Применение анонимных методов и лямбда-выражений вместе с событиями
Анонимные методы и лямбда-выражения особенно удобны для работы с событиями, поскольку обработчик событий зачастую вызывается только в коде, реализующем механизм обработки событий. Это означает, что создавать автономный метод, как правило, нет никаких причин. А с помощью лямбда-выражений или анонимных методов можно существенно упростить код обработки событий. // Использовать лямбда-выражение в качестве обработчика событий. using System; //Обьявить тип делегата для события. delegate void MyEventHandler (int n); //Обьявить класс, содержащий событие. class MyEvent { public event MyEventHandler SomeEvent; //Этот метод вызывается для запуска события. public void OnSomeEvent(int n) { if (SomeEvent!= null) SomeEvent(n); } } class LambdaEventDemo { static void Main(){ MyEvent evt = new MyEvent(); // Использовать лямбда-выражение в качестве обработчика событий. evt.SomeEvent+=(n)=>Console.WriteLine("Событие получено. Значение равно "+n); //Запустить событие. evt.OnSomeEvent(1); evt.OnSomeEvent(2); } } Событие получено. Значение равно 1 Событие получено. Значение равно 2 Обратите особое внимание на то, как в этой программе лямбда-выражение используется в качестве обработчика событий. evt.SomeEvent+=(n)=>Console.WriteLine("Событие получено. Значение равно "+n); Синтаксис для использования лямбда-выражения в качестве обработчика событий остается таким же, как для его применения вместе с любым другим типом делегата. Несмотря на то что при создании анонимной функции предпочтение следует теперь отдавать лямбда-выражениям, в качестве обработчика событий можно по-прежнему использовать анонимный метод. Ниже приведен вариант обработчика событий из предыдущего примера, измененный с целью продемонстрировать применение анонимного метода. // Использовать анонимный метод в качестве обработчика событий. evt.SomeEvent += delegate(int n) { Console.WriteLine("Событие получено. Значение равно " + n); };
Date: 2015-09-02; view: 417; Нарушение авторских прав |