前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >委托初级篇——lambda表达式的推导

委托初级篇——lambda表达式的推导

作者头像
指尖改变世界
发布2018-08-31 16:26:25
5620
发布2018-08-31 16:26:25
举报
文章被收录于专栏:vuevue

 public delegate void ConsoleWriteStr(string name,DateTime now);

 public delegate int DelegateAdd(int x, int y);

            //第一步 使用匿名函数             ConsoleWriteStr cws1= new ConsoleWriteStr(                 delegate(string name, DateTime now){                   Console.WriteLine("我叫{0},我喜欢学习{1}", name, now);                 }             );

            //第二步将delegate换成=> , =>的左边是参数列表,右边是函数体             ConsoleWriteStr cws2 =  (string name, DateTime now)  => { Console.WriteLine("我叫{0},我喜欢学习{1}", name, now); };

            //第三步去掉操作类型,原因是委托要求与方法签名一致             ConsoleWriteStr cws3 = ( name,  now) => { Console.WriteLine("我叫{0},我喜欢学习{1}", name, now); };

            //第三步去掉方法体的大括号,如果方法体只有一行,可以将大括号去掉             ConsoleWriteStr cws4 = (name, now) => Console.WriteLine("我叫{0},我喜欢学习{1}", name, now); 

            DelegateAdd func = (x, y) => { return x + y; };             DelegateAdd func1 = (x, y) => x + y;

            //系统自带的委托Action,该委托不带返回值             Action ac1 = () => { }; //无参数无返回值             Action<string> ac2 = x =>{ };  //泛型委托 一个参数可以去掉小括号             Action<string> ac3 = x => { };  //泛型委托             Action<string,int,DateTime,Action> ac4 = (x, y, z, a) => { };  //泛型委托

            //系统自带的委托Func,该委托带有返回值,最多16个参数,最后一个参数为返回值             Func<string> fun1 = () => " ";             Func<DateTime> fun2 = () => DateTime.Now;             Func<string, double,long, int> fun3 = (s,l, d) => { return 1+l; };

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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