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

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

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

Помогите разобраться, что ли Вчера пытался понять что же такое событие, для чего оно нужно, зачем ему делегат Ну и собственно вот попытки
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();
    }
}
Как я понял, делегат нужен событию для того чтобы подписчики были только одной сигнатуры? То есть нельзя чтобы, например, подписчики были типа int и типа void?

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

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

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


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

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

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