C#学习之代理委托的使用

来源:互联网 发布:80端口代理服务器 编辑:程序博客网 时间:2024/04/30 07:14

坚持 成长 每日一篇
c#委托事件类似OC的协议委托。不同的是OC的Delegate只能通知一个对象,C#的委托可以通知多个对象。

using System;namespace DelegateDemo{    class MainClass    {        public static void Main (string[] args)        {            Console.WriteLine ("Hello World!");            MyDog myDog = new MyDog ();            MyBlackDog myBlackDog = new MyBlackDog ();            Human man = new Human ();            //指定human对象的委托为myDog和myBlackDog            man.quickSpeck += myDog.Speack ;            man.quickSpeck += myBlackDog.Speack;            //让委托对象执行委托事件(通俗的意思就是让别人去做某件事:这是指让myDog和黑狗叫)            man.LetDogSpeck();        }    }    class MyDog    {        public void Speack()        {            Console.WriteLine ("我是MyDog");            this.run();        }        //默认的是私有的方法        void run()        {            Console.WriteLine ("MyDog run");        }    }    class MyBlackDog:MyDog    {        new public void Speack()        {            Console.WriteLine ("我是MyBlackDog");        }    }    class Human    {        //定义一个代理的类型        public delegate void QuickSpeck();        //定义一个委托对象(确切的说是对象数组)        public QuickSpeck quickSpeck;        //回调代理函数        public void LetDogSpeck()        {            if (quickSpeck != null) {                quickSpeck ();            }        }    }}
0 0
原创粉丝点击