Содержание
- 2. Делегаты. Что это такое? Делегат - это указатель на метод с определенным списком параметров и возвращаемым
- 3. Делегаты. Что это такое? При создании экземпляра делегата этот экземпляр можно связать с любым методом с
- 4. Делегаты. Что это такое? Поскольку созданный экземпляр делегата является объектом, его можно передавать как параметр или
- 5. Делегаты. Что это такое? Эта процедура называется асинхронным обратным вызовом и обычно используется для уведомления вызывающего
- 6. Как его создать? delegate ( ); Примеры: public delegate int PerformCalc (int x, int y); public
- 7. Пример Возьмем делегат: public delegate void Del(string message); Создадим метод, где его будем использовать public void
- 8. Пример Делегат может создаваться вне класса, как новый тип
- 9. Пример Теперь создадим функцию, которая будет соответствовать нашему делегату public static void PrintMes(string mes) { Console.WriteLine(mes);
- 10. Пример Мы передали функцию PrintMes как параметр в функцию
- 11. Пример. Вариант 2 А можно и так. Создали переменную от типа нашего делегата
- 12. 2 в 1 При вызове делегат может вызывать сразу несколько методов. Это называется многоадресностью. Чтобы добавить
- 13. 2 в 1 2 метода, вызываемые через 1 делегат. Методов на делегат можно прикрутить сколько угодно
- 14. Пример. Вариант 3 Делегат можно создать через конструктор
- 15. Удаление метода Чтобы удалить метод из списка вызова, используйте оператор decrement или назначения decrement ("-" или
- 16. Удаление метода И «отписать метод»
- 17. Анонимные методы Что означает «анонимный метод»? Создание анонимных методов является, по существу, способом передачи блока кода
- 18. Пример Пример создания анонимного метода. Сам метод: delegate(int k) {Console.WriteLine("Число: " + k); };
- 19. Использование метода Пример получения такого анонимного метода и вызов его
- 20. Зачем они нужны Использование анонимных методов позволяет сократить издержки на кодирование при создании делегатов, поскольку не
- 21. Немного истории Именованные методы были единственным способом объявления делегата в версиях C#, предшествующих версии 2.0. Анонимные
- 22. Лямбда-выражения Лямбда-выражение — это анонимная функция, с помощью которой можно создавать типы делегатов или деревьев выражений.
- 23. Лямбда-выражения Чтобы создать лямбда-выражение, необходимо указать входные параметры (если они есть) с левой стороны лямбда-оператора =>,
- 24. Пример Например, лямбда-выражение x => x * x задает параметр с именем x и возвращает квадрат
- 25. Еще пример Возьмем наш делегат и сделаем от него лямбда-выражение
- 26. Шаблон Лямбда-выражение с выражением с правой стороны оператора => называется выражением-лямбдой. Выражения-лямбды возвращают результат выражения и
- 27. Скобки в выражении Если лямбда имеет только один входной параметр, скобки можно не ставить, во всех
- 28. Явное указание типов Иногда компилятору бывает трудно или даже невозможно вывести типы входных параметров. В этом
- 29. Пустые параметры Отсутствие входных параметров задаётся пустыми скобками. () => SomeMethod() Тело выражения-лямбды может состоять из
- 30. Выражение Лямбда операторов (или операторная лямбда) напоминает выражение-лямбду, за исключением того, что оператор (или операторы) заключается
- 31. Пример Изменим наш пример, добавим еще операцию в наше выражение
- 32. Особенности Тело лямбды оператора может состоять из любого количества операторов; Однако на практике обычно используется не
- 33. Событийное программирование Ситуация: вы получили права и хотите, чтобы все об этом знали. Что бы делали
- 34. Событийное программирование Что делают сейчас?
- 35. Как это можно описать 1 Вариант: вам нужно иметь записную книжку с номерами всех тех, кого
- 36. Как это можно описать 2 Вариант: вы просто «постите» новость в социальной сети и все, кто
- 37. Переведем на «программистский» язык Ранее: мы должны были иметь объекты всех классов, кто должен знать об
- 38. Переведем на «программистский» язык Теперь: мы создаем поле-«событие» в нашем классе и метод, с помощью которого
- 39. Переведем на «программистский» язык «Изменением в классе» может быть любой вызываемый метод класса или событие. «Реакция
- 40. Что такое событие События позволяют классу или объекту уведомлять другие классы или объекты о возникновении каких-либо
- 41. Что такое событие События это особый тип многоадресных делегатов, которые можно вызвать только из класса или
- 42. Что такое событие В C# в стандартном приложении Windows Forms или веб-приложении вы подписываетесь на события,
- 43. Свойства событий События имеют следующие свойства: Издатель определяет момент вызова события, подписчики определяют предпринятое ответное действие.
- 44. Виды событий События можно пометить как открытые public, закрытые private, защищенные protected, внутренние internal или protectedinternal.
- 45. Как создавать Чтобы создать событие нам понадобится делегат public delegate void Del(string message); Теперь в классе
- 46. Как создавать Создать метод, с помощью которого на это событие можно будет подписаться. public void AddToEvent(Del
- 47. Как создавать И метод, в котором событие будет вызываться. public void SomeMethod() { //что-то происходит if(event1
- 48. Пример Как это может выглядеть наглядно
- 49. Как создавать Все, что остается, это привязать метод одного класса к событию в этом классе через
- 50. Как создавать Теперь связываем наши классы
- 52. Скачать презентацию