Lamda进化史

编程入门 行业动态 更新时间:2024-10-26 21:35:42

Lamda<a href=https://www.elefans.com/category/jswz/34/1761601.html style=进化史"/>

Lamda进化史

本文侧重于代码实践,理论请移步:.html

委托—>匿名方法—>Func && Anction—>Lamda诞生—->Lamda异步

委托

        public delegate void AddDelegate(int a,int b);public void Run(){AddDelegate add = new AddDelegate(Add);add(1,5);}public void Add(int a,int b){Console.WriteLine(a+b);}

匿名方法

        public delegate int AddDelegate(int a,int b);public void Run(){Test1();Test2();}/// <summary>/// 第一次进化/// </summary>void Test1(){AddDelegate add = new AddDelegate(delegate(int a,int b) { return a + b; });int num = add(1, 5);Console.WriteLine(num);}

Func&&Action

        /// <summary>/// 第二次进化/// </summary>void Test2(){Func<int, int, string> add = new Func<int, int, string>(delegate(int a,int b) { int num = a + b;return "result is:"+num; });Console.WriteLine(add(10,23));}public void Run(){Test(ResultOK,ResultError);}void Test(Action ok,Action error){if (true)ok();elseerror();}void ResultOK(){Console.WriteLine("OK");}void ResultError(){Console.WriteLine("Error");}

Lamda诞生

        /// <summary>/// 原始/// </summary>void T1(){Func<int, int, string> Add = delegate (int a, int b) { int num = a + b; return (a + b).ToString(); };Console.WriteLine(Add(300, 400));}/// <summary>/// 多参数/// </summary>void T2(){Func<int, int, string> Add = (int a, int b) => { int num = a + b; return (a + b).ToString(); };Add = (a, b) => { return (a + b).ToString(); };Add = (a,b) => (a + b).ToString();Console.WriteLine(Add(6, 400));}/// <summary>/// 单参数/// </summary>void T3(){Func<int,int> add= (a) => 10 + a;add = a => 10 + a;}

Lamda异步

        public void Run(){///无返回值的类型,可以直接用Wait代替!!!!!!!!!!T1().Wait();}/// <summary>/// 异步操作/// </summary>/// <returns></returns>async Task T1(){Func<string, Task<string>> func = async t => { await Task.Delay(300); Console.WriteLine(t); return "aa"; };string data = await func("aaa");Console.WriteLine(data);Func<int, int, Task> func1 = async (a, b) => { await Task.Delay(500); Console.WriteLine(a + b); };func1(10, 20).Wait() ;}

源码下载地址:

更多推荐

Lamda进化史

本文发布于:2024-03-14 17:10:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1736948.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:进化史   Lamda

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!