Lambda表达式其实就是匿名方法的进一步简写,也就是匿名方法的升级版。 本篇文章我会在我写的匿名方法的基础上来做更改,匿名方法文章链接:http://www.wjgbaby.com/2017/08/17/c%e4%b9%8b%e5%8c%bf%e5%90%8d%e6%96%b9%e6%b3%95/ Lambda表达式语法: 委托类型 变量 = ([参数列表])=> { 方法体; }; 注意点: 1.=> 是Lambda 表达式特有符号,读作goes to 2.如果没有参数列表,()也不能省略,如:()=>
pro.noPad = () => { Console.WriteLine(“我是Test01”); };
3.如果参数列表中只有一个参数,()可以省略
pro.Pad = str => { Console.WriteLine(“我是{0}”, str); };
4.如果方法体内只有一句代码,可以省略代码块符号,也就是不用写{ }
pro.Pad = (str) => Console.WriteLine(“我是{0}”, str); ;
pro.Pad = str => Console.WriteLine(“我是{0}”, str); ;
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace anonymousMethods
{
class Program
{
public delegate void noParameterDelegate(); //无参委托
public delegate void parameterDelegate(string str); //有参委托
public noParameterDelegate noPad;
public parameterDelegate Pad;
static void Main(string\[\] args)
{
Program pro = new Program();
//老方法
//pro.noPad = Test01;
//pro.Pad = Test02;
//pro.noPad();
//pro.Pad("武武武");
//匿名方法
//pro.noPad = delegate () { Console.WriteLine("我是Test01"); };
//pro.Pad = delegate (string str) { Console.WriteLine("我是{0}", str); };
//Lambda表达式
pro.noPad = () => { Console.WriteLine("我是Test01"); };
pro.Pad = (str) => { Console.WriteLine("我是{0}", str); };
//一下三句话每句都可以替换掉第35句,即注释上面的这句话
//pro.Pad = str => { Console.WriteLine("我是{0}", str); };
//pro.Pad = (str) => Console.WriteLine("我是{0}", str); ;
//pro.Pad = str => Console.WriteLine("我是{0}", str); ;
pro.noPad();
pro.Pad("武武武");
Console.ReadKey();
}
/\*
public static void Test01()
{
Console.WriteLine("我是Test01");
}
public static void Test02(string str)
{
Console.WriteLine("我是{0}",str);
}\*/
}
}
结果如下: [