委托与事件
C# 面向对象 控制台程序
代码:
using System;
class jiaoweit
{
static void Main(string[] args)
{
Cat1 cat1 = new Cat1(“Tom”);
Mouse mouse1 = new Mouse(“Jerry”);
Mouse mouse2 = new Mouse(“Jack”);
cat1.CatShout += new Cat1.Cat1ShoutEventHandler(mouse1.Run);
cat1.CatShout += new Cat1.Cat1ShoutEventHandler(mouse2.Run);
cat1.Shout();
Console.Read();
}
}
public class Cat1ShoutEventArgs:EventArgs
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
}
class Cat1
{
private string name;
public Cat1 (string name)
{
this.name = name;
}
public delegate void Cat1ShoutEventHandler(object sender,Cat1ShoutEventArgs args);
public event Cat1ShoutEventHandler CatShout;
public void Shout()
{
Console.WriteLine("喵,我是{0}.", name);
if(CatShout!= null)
{
Cat1ShoutEventArgs e = new Cat1ShoutEventArgs();
e.Name = this.name;
CatShout(this,e);
}
}
}
class Mouse
{
private string name;
public Mouse (string name)
{
this.name = name;
}
public void Run(object sender, Cat1ShoutEventArgs args)
{
Console.WriteLine("老猫来了,{0}快跑!", name);
}
}