观察者与委托

来源:互联网 发布:军团要塞知乎 编辑:程序博客网 时间:2024/05/17 23:22
观察者模式与委托,事件
加上event只能类里面触发,不能再类的外部触发。
不加event都能触发.
示例:

/// <summary>
/// 被观察者类
/// </summary>
public class Cat
{
private string CatName;
public Cat (string CatName)
{
this.CatName = CatName;
}
public void CatComing()
{
Console.WriteLine (CatName+"说:我回来了");
if (Catcome!=null) {
Catcome ();
}
}
public event Action Catcome=null;
}


/// <summary>
/// 观察者类
/// </summary>
public class Mouse
{
private string MouseName;


public Mouse (string MouseName,Cat cat)
{
this.MouseName = MouseName;
cat.Catcome += this.RunAway;
}
public void RunAway()
{
Console.WriteLine (MouseName+"说:锤子回来了快跑");
}
}


/// <summary>
/// 入口函数
/// </summary>
class MainClass
{
public static void Main (string[] args)
{
Cat c = new Cat ("锤子");
Mouse mouse1 = new Mouse ("阿文",c);
Mouse mouse2 = new Mouse ("小超",c);
c.CatComing ();
Console.ReadKey ();
}
}
0 0