前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >函数~匿名方法~lambda的逐渐过渡思想

函数~匿名方法~lambda的逐渐过渡思想

作者头像
wfaceboss
发布2019-04-08 11:30:45
4860
发布2019-04-08 11:30:45
举报
文章被收录于专栏:wfaceboss

前提:基于委托实现

(1)使用函数名称

代码语言:javascript
复制
delegate void Printer(string s);//(1)申明委托

        static void Main(string[] args)
        {
         //(3)委托与命名方法关联
            p = new Printer(DoWork);

            p("The delegate using the named method is called.");//(4)调用委托

            Console.ReadKey();
        }
        static void DoWork(string k)//(2)根据委托创建具有相同签名的方法
        {
            Console.WriteLine(k);
        }


对于一个方法来说方法名是什么是无关紧要的,重要的是参数所以可以使用匿名函数(方法)

(2)使用匿名函数

代码语言:javascript
复制
delegate void Printer(string s);//(1)申明委托
        static void Main(string[] args)
        {
            //(2)委托与匿名方法关联
            Printer p = delegate (string st)
              {
                  Console.WriteLine(st);
              };
            p("The delegate using the anonymous method is called.");//调用委托

            Console.ReadKey();
        }
       

(3)还有比匿名方法更加高级的方法

代码语言:javascript
复制
delegate void TestDelegate(string s);//(1)申明委托

        static void Main(string[] args)
        {
            //Lambda语句用于创建委托
      TestDelegate myDel = (n) => //委托与具体的方法相关连
   { 
    string s = n + " " + "World"; Console.WriteLine(s);

   };

      myDel("Hello");//+(3)调用委托
        }

//myDel :是委托对象   n:是与委托相对应的参数 (n)可以直接简写成n
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-03-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档