using System;
namespace EventsDemo
{
class Program
{
static void Main(string[] args)
{
Cat cat = new Cat() { Name = "Tom" };
Mouse mouse1 = new Mouse(cat) { Name = "Jerry" };
Mouse mouse2 = new Mouse(cat) { Name = "Thomas" };
mouse1.Eat();
mouse2.Eat();
cat.Meow();
}
}
public class Cat
{
public event EventHandler OnMeow;
public string Name { get; set; }
public void Sleep()
{
Console.WriteLine("Cat:" + this.Name + " is sleeping...");
}
public void Meow()
{
Console.WriteLine("Cat:" + this.Name + " is Meowing...");
if (OnMeow != null)
OnMeow(this, new MeowArg() { Name = this.Name });
}
}
public class MeowArg : EventArgs
{
public string Name { get; set; }
}
public class Mouse
{
private Cat CatToWatch { get; set; }
public Mouse(Cat cat)
{
CatToWatch = cat;
CatToWatch.OnMeow += CatToWatch_OnMeow;
}
private void CatToWatch_OnMeow(object sender, EventArgs e)
{
RunAway((e as MeowArg).Name);
}
public string Name { get; set; }
public void Eat()
{
Console.WriteLine("Mouse:" + this.Name + " is eating...");
}
private void RunAway(string catName)
{
Console.WriteLine("Cat:" + catName + " meows, mouse:" + this.Name + " run away...");
}
}
}
c# - events 观察者模式
猜你喜欢
转载自blog.csdn.net/yuxuac/article/details/103236605
今日推荐
周排行