软件编程
位置:首页>> 软件编程>> C#编程>> C#中Lambda表达式的三种写法

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

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

标签:C#,Lambda,表达式

一、历史版本

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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com