Что такое событие, для чего оно нужно - C#
Формулировка задачи:
Помогите разобраться, что ли
Вчера пытался понять что же такое событие, для чего оно нужно, зачем ему делегат
Ну и собственно вот попытки
Как я понял, делегат нужен событию для того чтобы подписчики были только одной сигнатуры?
То есть нельзя чтобы, например, подписчики были типа int и типа void?
Листинг программы
- using System;
- public delegate void MethodContainer(); // Это делегат, который вызовет метод с сигнатурой void
- class ClassCounter // Это класс издатель
- {
- public event MethodContainer onCount; // Это событие, которое произойдет при вызове onCount
- public void Count()
- {
- for (int i = 0; i < 100; i++)
- {
- if (i == 10)
- {
- Console.WriteLine("Событие вызвано");
- onCount(); // Вызов события
- }
- }
- }
- }
- class Handler_I // Класс подписчик
- {
- public void Message()
- {
- Console.WriteLine("Handler_I: Счет достиг 10");
- }
- }
- class Handler_II // Класс подписчик
- {
- public void Message()
- {
- Console.WriteLine("Handler_II: Счет достиг 10");
- }
- }
- class Program
- {
- static void Main()
- {
- ClassCounter Counter = new ClassCounter(); // Создание экземпляров
- Handler_I Handler1 = new Handler_I();
- Handler_II Handler2 = new Handler_II();
- //Подписались на событие
- Counter.onCount += Handler1.Message;
- Counter.onCount += Handler2.Message;
- //Запустили счетчик
- Counter.Count();
- }
- }
Решение задачи: «Что такое событие, для чего оно нужно»
textual
Листинг программы
- public static void Main()
- {
- // Создание делегата.
- strMod strOp = new strMod(replaceSpaces); // ??????
- string str;
- // Вызываем методы посредством делегата.
- str = strOp("Это простой тест."); // В качестве параметра передается string
- Console.WriteLine("Результирующая строка: " + str);
- Console.WriteLine();
- //...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д