A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张振鹏 黑马帝   /  2011-11-21 17:44  /  2537 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

听视频说委托是将方法作为方法的参数,还是不太理解,那什么是事件?为什么要用委托、事件,何时会用到?有什么好处。求解!!!

2 个回复

倒序浏览
本帖最后由 小色猫 于 2011-11-21 18:12 编辑

委托就是指向函数的变量,函数指针
delegate void ProcessIntDelegate(int i);//ProcessIntDelegate是声明一种类型
class Program
    {
        static void Main(string[] args)
        {
                    ProcessIntDelegate pid = new ProcessIntDelegate(PrintIt);//把委托pid指向PrintIt这个函数 ★被指向的函数的参数和返回值,必须和委托声明的一样   (也就是最上面:int  void)
            pid(30);//把pid当成指向的函数那样用

            pid = new ProcessIntDelegate(SayHello);//委托指向变量语法就是pid=new 委托的类型名(指向的函数名)
                     pid(30);

                 Console.ReadKey();
        }

static void PrintIt(int i)
        {
            Console.WriteLine(i);
        }

        static void SayHello(int i)
        {
            Console.WriteLine("你好,我是{0}",i);
        }

我下面可以写一百个方法,而在Main函数调用里,我的pid想用哪个方法就用那个方法,而不是像以前一样写死某某函数,所以比较灵活
回复 使用道具 举报
郑文 黑马帝 2011-11-21 18:51:00
藤椅
最典型用到委托是多线程的时候 要用到委托作为参数 现在不理解很正常 晚上有一篇张子阳关于委托事件的解释 你试着看一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马