Что такое событие, для чего оно нужно - 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();
//...