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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蒋元龙 中级黑马   /  2013-9-11 00:13  /  1620 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文


static void Main(string[] args)
        {
           Console.WriteLine(Exec(GetSet));//传个方法名(GetSet)参数 给 Exec方法
           Console.ReadKey();
        }
     
        public delegate string GetResultDelegate();   //定义委托,用于将方法做为参数传给Exec.
        public static string Get()
        {
            return "get";
        }

        public static string GetTest()
        {
            return "gettest";
        }

        public static string GetSet()
        {
            return "getSet";
        }


        public static string Exec(GetResultDelegate getResult) //Exec方法,得到委托的 方法名 参数
        {
            return getResult(); //委托的实现
}

利用委托,可以把一个方法做为另一个方法的参数,直接执行参数就OK了。和javascript的函数有点相似,javascript里面的函数也可以做为另一个函数的参数。javascript中直接可以用函数名做参数,而c#中必须通过委托,转个弯,实现同样的功能!


2 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
顶一下!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马