Классы Делегаты - выполнение сразу двух событий при запуске программы - C#
Формулировка задачи:
Помогите разобраться в следующем. Сначала нужно создать один класс делегат, в них - метод обработки события. Событию назначается делегат. Затем событие выполняется. Следующий шаг. Нужно создать еще один такой класс делегат с событием. Но как сделать так чтобы выполнялись сразу два события при запуске программы.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Console1
{
public delegate void MyDeleg(object sender, EventArgs ea);
class Delegat1
{
static public event MyDeleg MyEvent;
static public void MyMet(object sender, EventArgs ea)
{
Console.WriteLine("Cобытие1");
Console.ReadKey();
}
static void Main(string[] args)
{
MyDeleg Z = new MyDeleg(MyMet);
MyEvent += Z;
MyEvent(null, new EventArgs());
}
}
class Delegat2
{
static public event MyDeleg MyEvent2;
static public void MyMet2(object sender, EventArgs ea)
{
Console.WriteLine("Событие2");
Console.ReadKey();
}
static void Main2(string[] args)
{
MyDeleg Z = new MyDeleg(MyMet2);
MyEvent2 += Z;
MyEvent2(null, new EventArgs());
}
}
}Решение задачи: «Классы Делегаты - выполнение сразу двух событий при запуске программы»
textual
Листинг программы
namespace ConsoleApplication6
{
namespace Console1
{
public delegate void MyDeleg(object sender, EventArgs ea);
class Program
{
static void Main(string[] args)
{
//4. присвоить метод делегату
MyDeleg Z = new MyDeleg(MyMet1);
MyDeleg y = new MyDeleg(MyMet2);
//5. назначить событие
Delegat1.MyEvent += Z;
Delegat2.MyEvent2 += y;
//6 зажечь событие
Delegat1.RunEvent(null, EventArgs.Empty);
Delegat2.RunEvent(null, EventArgs.Empty);
Console.ReadLine();
}
//3. метод обработчика события
static public void MyMet1(object sender, EventArgs ea)
{
Console.WriteLine("Cобытие1");
}
//еще один метод обработки события
static public void MyMet2(object sender, EventArgs ea)
{
Console.WriteLine("Событие2");
Console.ReadKey();
}
}
//1. объявляем класс
class Delegat1
{
//2. объявляем событие
static public event MyDeleg MyEvent;
//метод который запускает событие
static public void RunEvent(object o,EventArgs e)
{
MyEvent(o,e);
}
}
//А после всего создать второй такой класс с событием,
//так чтобы после запуска программы выводились сообщения
//из одного и второго класса одновременно.
class Delegat2
{
static public event MyDeleg MyEvent2;
static public void RunEvent(object sender, EventArgs ea)
{
MyEvent2(sender, ea);
}
}
}
}