C#中Lambda表达式的三种写法

作者:農碼一生 时间:2022-03-27 02:50:27 

一、历史版本

delegate void StudentDelegate(string name, int age);
public class LambdaTest
{
   public void Show()
   {
       DateTime dateTime = DateTime.Now;
       //历史
       //版本1
       {
           StudentDelegate student = new StudentDelegate(PrintStudent);
           student("葛优", 1);
       }
   }
}

public void PrintStudent(string name,int age)
{
   Console.WriteLine($"我的名字是:{name},我的年龄是{age}");
}

二、版本二:访问局部变量

delegate void StudentDelegate(string name, int age);
public class LambdaTest
{
   public void Show()
   {
       DateTime dateTime = DateTime.Now;
       //版本2(这样写的话可以访问局部变量)
       {
           StudentDelegate student = new StudentDelegate( delegate (string name, int age)
           {
               Console.Write(dateTime);
               Console.WriteLine($"我的名字是:{name},我的年龄是{age}");
           });
           student("王朝伟", 1);
       }
   }
}

三、版本三: “=>”

delegate void StudentDelegate(string name, int age);
public class LambdaTest
{
   public void Show()
   {
       DateTime dateTime = DateTime.Now;
       //版本3(=>念成gose to)
       {
           StudentDelegate student = new StudentDelegate((string name, int age)=>
           {
               Console.Write(dateTime);
               Console.WriteLine($"我的名字是:{name},我的年龄是{age}");
           });
           student("刘德华", 1);
       }
       {
           Action action = () => Console.WriteLine("无返回值,无参数");
           Action<DateTime> action1 = d => { Console.WriteLine( $"带一个参数:{d}"); };
           action1(dateTime);

Action<DateTime, int> action2 = (d, i) => { Console.WriteLine(  $"带两个参数:{ d} ,{ i}"); };
           action2(dateTime, 3);

Func<DateTime> func=()=>{ return DateTime.Now; };//带返回值
           DateTime dateTime1 = func();//调用Lambda获取值
           Console.WriteLine(dateTime1);

Func<DateTime> func2 = () => DateTime.Now;//带返回值
           Console.WriteLine(func2());
       }
   }
}

来源:https://www.cnblogs.com/wml-it/p/16078005.html

标签:C#,Lambda,表达式
0
投稿

猜你喜欢

  • Android studio设计简易计算器

    2023-01-26 22:21:40
  • C#非矩形窗体实现方法

    2023-04-09 15:11:39
  • ViewPager判断是向左划还是右划的实例

    2023-12-10 04:53:18
  • Docker学习之基于Dockerfile搭建JAVA Tomcat运行环境的方法

    2022-02-13 17:42:00
  • sharding-jdbc5.0.0实现分表实践

    2023-12-07 10:12:26
  • Android 短信验证码自动填写

    2022-06-15 08:22:56
  • 详解SpringMVC验证框架Validation特殊用法

    2023-06-08 22:23:29
  • Java实现SSL双向认证的方法

    2023-09-22 10:34:35
  • 关于WPF异步MVVM等待窗体的介绍

    2022-08-03 00:54:19
  • C#如何实现dataGridView动态绑定数据

    2022-10-26 09:23:18
  • C# winform登陆框验证码的实现方法

    2022-08-26 12:45:58
  • Java 微信公众号开发相关总结

    2021-11-11 03:43:30
  • java 在Jetty9中使用HttpSessionListener和Filter

    2021-10-01 14:44:00
  • java反射获取和调用方法

    2021-11-23 11:05:02
  • java返回集合为null还是空集合及空集合的三种写法小结

    2021-08-18 05:37:48
  • C#利用FileSystemWatcher实时监控文件的增加,修改,重命名和删除

    2021-08-21 05:46:28
  • C#中函数的创建和闭包的理解

    2022-08-17 01:14:35
  • Android优化提升应用启动速度及Splash页面的设计

    2022-02-18 06:02:27
  • java实现倒序读取文件功能示例分享

    2023-07-12 09:23:54
  • C#实现文件筛选读取并翻译的自动化工具

    2021-11-07 18:49:46
  • asp之家 软件编程 m.aspxhome.com