События WinForms - C#
Формулировка задачи:
Я так понимаю событие это приватный делегат с функционалом добавления и удаления методов к этому самому делегату. Т.е формально при наступлении события т.е передачи конструктору события аргумента идентичного сигнатуре делегата, все методы, которые "пришиты" к событию синхронно или асинхронно начнут выполняться.
У меня два вопроса, почему это называется "обратным вызовом", если можно по - русски, я пытался читать про события но все примеры настолько притянуты за уши, что овер 30 строк кода можно было бы заменить одним if-ом, образно говоря.
И у меня ещё такой вопрос, в GUI приложениях в дизайнере есть предопределённые обработчики событий.
Например
я так понимаю Sender это объект, который вызывает событие? А что значит вызывает? Передает конструктору события что то, и кто есть этот сендер например в приведённом мною примере, System.Windows.Forms.Form ? И что делает event e? Синхронно выполняет весь код что я напишу внутри кнопки?
Заранее спасибо если сможете мне доходчиво объяснить.
void Form_Load(object Sender, event e) { }
Решение задачи: «События WinForms»
textual
Листинг программы
namespace MyNamespace { delegate void PushPrinterButton(); // Объявление делегата class Program { static void Main(string[] Args) { Mouse mouse = new Mouse(); // Подписка на событие с указанием метода mouse.Click += new PushPrinterButton(mouse.OnMouseClick); mouse.DoEvent(); //Вызывается событие } } class Mouse { public event PushPrinterButton Click; // Объявление события public void DoEvent() // Генерация события { if (Click != null) // проверка что на метод есть подписка Click(); // запуск события } public void OnMouseClick() // Метод для события (обработчик события) { Console.WriteLine("Произошло нажатие"); Console.ReadLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д