委托与事件的区别

来源:互联网 发布:java前台工程师招聘 编辑:程序博客网 时间:2024/05/21 14:05

使用事件的代码

 

   //定义一个类    class Foo    {        //生明一个事件        public event myDelegate myEvent;        //定义一个委托        public delegate void myDelegate();        //定义一个方法        public void Fun()        {            Console.WriteLine("hello world.");            Console.ReadLine();        }        //定义一个方法,调用委托        public void Action()        {            myEvent();        }    }    class Program    {        static void Main(string[] args)        {            Foo f = new Foo();            f.myEvent += f.Fun;//当执行方法的时候调用的函数名称            f.Action();//运行方法                   }    }

 
使用委托的方法

   class Foo    {        //定义一个委托方法        public delegate void MyDelegate();        //声明一个委托名称        public MyDelegate ADelegate;        //随便定义一个方法        public void Fun()        {            Console.WriteLine("hello world.");        }        //执行一个方法方法        public void Action()        {           ADelegate();        }    }    class Program    {        static void Main(string[] args)        {            Foo f = new Foo();            f.ADelegate += f.Fun;//当执行方法的时候调用的函数名称            f.Action();//执行委托              }    }

区别一:event可以多播

 class Foo    {        public event myDelegate myEvent;//声明一个事件        public delegate void myDelegate();//委托方法        public void Fun()        {            Console.WriteLine("hello world.");        }        public void Enjoy()        {            Console.WriteLine("hello C#");        }        //执行委托方法        public void Action()        {           myEvent();        }    }    class Program    {        static void Main(string[] args)        {            Foo f = new Foo();            //注册方法名称            f.myEvent += f.Fun;            f.myEvent += f.Enjoy;       //<---            //执行方法名称            f.Action();        }    }






参考:http://bbs.csdn.net/topics/300226562


0 0