委托

委托的含义是:委托是对函数的封装,可以当作给方法的特征指定一个名称,而事件只是委托的一种特殊形式,当发生有意义的事,事件对象处理通知的过程。委托是一种引用方法的类型,一旦为委托分配方法,委托将与该方法具有相同的行为。

委托对象的关键字是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();

        }     } }

 

posted @ 2016-06-30 17:32  呆萌大师  阅读(367)  评论(0编辑  收藏  举报