using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 自定义事件
{
class EventDispatcher
{
public delegate void EventHander(Event ev);
public event EventHander eventHander;
public void Dispatch(Event ev)
{
if (eventHander != null) eventHander(ev);
}
}
class Event:EventArgs
{
public string message;
public Event(string message)
{
this.message = message;
}
}
class Sprite:EventDispatcher
{
public void addEventListener(EventHander hander)
{
eventHander += new EventHander(hander);
}
}
class Program
{
static void Main(string[] args)
{
Sprite sprite =new Sprite();
sprite.addEventListener(Receiver);
sprite.addEventListener(Hander);
sprite.eventHander += sprite_eventHander;
Console.ReadKey();
sprite.Dispatch(new Event("我发送了一个消息"));
Console.ReadLine();
Console.ReadKey();
}
static void sprite_eventHander(Event ev)
{
Console.WriteLine("sprite_eventHander收到消息" + ev.message);
}
private static void Hander(Event ev)
{
Console.WriteLine("Hander收到消息" + ev.message);
}
private static void Receiver(Event ev)
{
Console.WriteLine("Receiver收到消息:" + ev.message);
}
}
}