委托的含义是:委托是对函数的封装,可以当作给方法的特征指定一个名称,而事件只是委托的一种特殊形式,当发生有意义的事,事件对象处理通知的过程。委托是一种引用方法的类型,一旦为委托分配方法,委托将与该方法具有相同的行为。
委托对象的关键字是delegate 用法: public delegate void CatShoutEventHandler();
事件对象关键字 even 用法:public event CatShoutEventHandler CatShout;
下面有个代码例子是关于猫来了,对老鼠的通知。是通过委托实现的,这些知识都是通过大话设计模式中学习到的,具体代码如下:
namespace MyDelegate
{
class Cat
{
private string name;
public Cat(string name)
{
this.name = name;
}
public delegate void CatShoutEventHandler();
public event CatShoutEventHandler catShout;
public void Shout()
{
Console.WriteLine("瞄,我是{0}", name);
if (catShout != null)
{
catShout();
}
}
}
}
namespace MyDelegate
{
class Mouse
{
private string name;
public Mouse(string name)
{
this.name = name;
}
public void Run() {
Console.WriteLine("猫来了,{0}快跑", name);
}
}
}
namespace MyDelegate { class Program { static void Main(string[] args) { Cat cat = new Cat("Tom"); Mouse mouse1 = new Mouse("Jack"); Mouse mouse2 = new Mouse("Jerry"); cat.catShout += new Cat.CatShoutEventHandler(mouse1.Run); cat.catShout += new Cat.CatShoutEventHandler(mouse2.Run); cat.Shout(); Console.ReadLine();
} } }