猫类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 猫捉老鼠事件的发布和订阅
{
class Cat
{
string name;
string coler;
public Cat(string name, string coler)
{
this.name = name;
this.coler = coler;
}
public void CatComing()
{
Console.WriteLine(coler + "颜色的" + name + "进来了,喵喵喵...");
if (ShiJian != null)
{
ShiJian();
}
}
public event Action ShiJian;
}
}
老鼠类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 猫捉老鼠事件的发布和订阅
{
class Mouse
{
string name;
string coler;
public Mouse(string name,string coler,Cat cat)
{
this.name = name;
this.coler = coler;
cat.ShiJian += MoustRun;
}
void MoustRun()
{
Console.WriteLine(coler+"颜色的"+name+":跑了。");
}
}
}
主函数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 猫捉老鼠事件的发布和订阅
{
class Program
{
static void Main(string[] args)
{
Cat cat = new Cat("加菲猫","黄色");
Mouse mouse1 = new Mouse("老鼠1", "红色", cat);
Mouse mouse2 = new Mouse("老鼠2", "蓝色", cat);
Mouse mouse3 = new Mouse("老鼠3", "黑色", cat);
cat.CatComing();
Console.ReadKey();
}
}
}