个人理解
- 个人理解是一个订阅发布的关系。发布者发布一个事件,订阅者都去订阅。当这个事件触发时,订阅者就收到了通知,进而触发自己的执行方法。当然,发布者发布的事件,订阅者订阅时候采用委托的形式。
事件中发布者和订阅者的关系图
对应实现
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
namespace EventDemo
{
class Program
{
public delegate void Hander();
public class Tiger
{
public event Hander Comming;
public void TigerComming()
{
Comming();
}
}
public class Sheep
{
public Sheep(Tiger _tiger)
{
_tiger.Comming += Run;
}
public void Run()
{
Console.WriteLine("sheep run!");
}
}
public class Rabbit
{
public Rabbit(Tiger _tiger)
{
_tiger.Comming += Run;
}
public void Run()
{
Console.WriteLine("rabbit run!");
}
}
static void Main(string[] args)
{
var tiger = new Tiger();
var sheep = new Sheep(tiger);
var rabbit = new Rabbit(tiger);
tiger.TigerComming();
Console.ReadLine();
}
}
}
结果展示