代码改变世界

C#的内置委托,lambda多行方法体

  Evan.Pei  阅读(119)  评论(0编辑  收藏  举报
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//委托,不具有参数和返回值
            //Action C#封装的无参数无返回值的委托
            Action action = () => DateTime.Now.ToString();
            action.Invoke();//同步但现场
            action.BeginInvoke(null, null);//异步多线程
 
            //委托,具有参数和返回值
            //Func<T> C#封装的有参数有返回值的委托
            Func<int, int, string> fun = (a, b) => DateTime.Now.Day.ToString() + $"{a}+{b}";
            string result = fun.EndInvoke(fun.BeginInvoke(1, 2, null, null));
 
            //lambda表达式,写一个方法给委托
            Action action2 = () => DateTime.Now.ToString();//()代表无参,"=>"后面写方法体
            //<int, int, string>除了最后一个为返回值类型,前面都是参数可多个
            //(a, b)参数  //$"{a}+{b}" 字符串格式化
            Func<int, int, string> fun2 = (a, b) => DateTime.Now.Day.ToString() + $"{a}+{b}";
 
            //lambda多行方法体
            Func<int, int, string> fun3 = (aa, bb) =>
            {
                return DateTime.Now.Day.ToString() + $"{aa}+{bb}";
            };
            string result2 = fun3.EndInvoke(fun3.BeginInvoke(20, 30, null, null));//调用接收返回值

  

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示