在一个事件系统中,存在订阅者和发布者,发布者发布事件,订阅者事件注册,一旦引发事件订阅者就会采取相应的行动。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 事件回调
{
class Program
{
static void Main(string[] args)
{
Thief thief = new Thief();
Dog dog = new Dog();
Host host = new Host(dog);
thief.Coming(dog);
Console.Read();
}
}
class Dog
{
public delegate void AlarmEventHandle(object sender, EventArgs e);
public event AlarmEventHandle Alarm;
public void OnAlarm()
{
if(this.Alarm!=null)
{
Console.WriteLine("Dog say:小偷来了,汪汪汪~~~~~");
this.Alarm(this,new EventArgs());
}
}
}
class Host
{
public Host(Dog dog)
{
dog.Alarm += new Dog.AlarmEventHandle(HostHandleAlarm);//注册
}
/// <summary>
/// 订阅者行动
/// </summary>
private void HostHandleAlarm(object sender, EventArgs e)
{
Console.WriteLine("The Host say: 抓住小偷了");
}
}
class Thief
{
public void Coming(Dog dog)
{
Console.WriteLine("The thief say:I am comming");
dog.OnAlarm();
}
}
}