Что такое событие, для чего оно нужно - C#

Узнай цену своей работы

Формулировка задачи:

Помогите разобраться, что ли Вчера пытался понять что же такое событие, для чего оно нужно, зачем ему делегат Ну и собственно вот попытки
Листинг программы
  1. using System;
  2. public delegate void MethodContainer(); // Это делегат, который вызовет метод с сигнатурой void
  3. class ClassCounter // Это класс издатель
  4. {
  5. public event MethodContainer onCount; // Это событие, которое произойдет при вызове onCount
  6. public void Count()
  7. {
  8. for (int i = 0; i < 100; i++)
  9. {
  10. if (i == 10)
  11. {
  12. Console.WriteLine("Событие вызвано");
  13. onCount(); // Вызов события
  14. }
  15. }
  16. }
  17. }
  18. class Handler_I // Класс подписчик
  19. {
  20. public void Message()
  21. {
  22. Console.WriteLine("Handler_I: Счет достиг 10");
  23. }
  24. }
  25. class Handler_II // Класс подписчик
  26. {
  27. public void Message()
  28. {
  29. Console.WriteLine("Handler_II: Счет достиг 10");
  30. }
  31. }
  32. class Program
  33. {
  34. static void Main()
  35. {
  36. ClassCounter Counter = new ClassCounter(); // Создание экземпляров
  37. Handler_I Handler1 = new Handler_I();
  38. Handler_II Handler2 = new Handler_II();
  39. //Подписались на событие
  40. Counter.onCount += Handler1.Message;
  41. Counter.onCount += Handler2.Message;
  42. //Запустили счетчик
  43. Counter.Count();
  44. }
  45. }
Как я понял, делегат нужен событию для того чтобы подписчики были только одной сигнатуры? То есть нельзя чтобы, например, подписчики были типа int и типа void?

Решение задачи: «Что такое событие, для чего оно нужно»

textual
Листинг программы
  1. public static void Main()
  2.     {
  3.         // Создание делегата.
  4.         strMod strOp = new strMod(replaceSpaces); // ??????
  5.         string str;
  6.  
  7.         // Вызываем методы посредством делегата.
  8.         str = strOp("Это простой тест."); // В качестве параметра передается string
  9.         Console.WriteLine("Результирующая строка: " + str);
  10.         Console.WriteLine();
  11.         //...

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут