public class Cat
{
public delegate void MaojiaoHandler();
public event MaojiaoHandler Maojiao;
public void RaiseMaojiaoEvent()
{
if (Maojiao != null) //不等于空说明有客户订阅了该事件
{
Delegate[] dels = Maojiao.GetInvocationList();
foreach (MaojiaoHandler del in dels)
{
del();
}
Maojiao();
}
else
{
Console.WriteLine("没有发现事件订阅者...");
}
}
public void MaoHuoDong()
{
Console.WriteLine("猫在睡觉....");
Console.WriteLine("猫在醒了.发现了老鼠,猫叫了.喵...");
RaiseMaojiaoEvent();
}
}
public class Mouse
{
public void Run()
{
Console.WriteLine("猫来了,快跑...");
}
}