namespace caAndMouse
{
class Program
{
static void Main(string[] args)
{
Cat cat = new Cat("加菲猫", "黄色");
Mouse mouse1 = new Mouse("米奇", "黑色");
Mouse mouse2 = new Mouse("佳米水", "红色");
cat.catCome += new Action(()=>mouse1.RunAway());
cat.catCome += new Action(()=>mouse2.RunAway());
cat.CatComing();//触发事件,事件里面的所有老鼠身上的逃跑函数都会触发
//cat.catCome();//事件不能再类的外部触发,只能在类的内部触发
Console.ReadKey();
}
}
class Cat
{
private string name;
private string color;
public Cat(string name, string color)
{
this.name = name;
this.color = color;
}
public void CatComing()
{
Console.WriteLine(color + "的猫" + name + "过来了,喵喵喵 ...");
if (catCome != null)
catCome();
}
public event Action catCome;//声明一个事件 发布了一个消息
}
class Mouse
{
private string name;
private string color;
public Mouse(string name, string color)
{
this.name = name;
this.color = color;
}
public void RunAway()
{
Console.WriteLine(color + "的老鼠" + name + "说: 老猫来, 赶紧跑, 我加速使劲跑 ...");
}
}
}