本文侧重于代码实践,理论请移步:http://www.cnblogs.com/zhaopei/p/5767631.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(); |
| } |
| |
| |
| |
| |
| void Test1() |
| { |
| AddDelegate add = new AddDelegate(delegate(int a,int b) { return a + b; }); |
| int num = add(1, 5); |
| Console.WriteLine(num); |
| } |
| |
Func&&Action
| |
| |
| |
| 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(); |
| else |
| error(); |
| } |
| |
| void ResultOK() |
| { |
| Console.WriteLine("OK"); |
| } |
| |
| void ResultError() |
| { |
| Console.WriteLine("Error"); |
| } |
Lamda诞生
| |
| |
| |
| 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)); |
| } |
| |
| |
| |
| |
| 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)); |
| } |
| |
| |
| |
| |
| void T3() |
| { |
| Func<int,int> add= (a) => 10 + a; |
| add = a => 10 + a; |
| } |
Lamda异步
| public void Run() |
| { |
| |
| T1().Wait(); |
| } |
| |
| |
| |
| |
| |
| |
| 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() ; |
| } |
源码下载地址:http://download.csdn.net/detail/fwj380891124/9636185
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构