C#的内置委托,lambda多行方法体
2022-02-23 11:11 Evan.Pei 阅读(105) 评论(0) 编辑 收藏 举报//委托,不具有参数和返回值 //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));//调用接收返回值