演示代码1(最原始的写法):
Action<string> show = new Action<string>(Show);
show("tiana0");
static void Show(string strInput)
{
Console.WriteLine("Hello,{0}!", strInput);
}
演示代码2(使用匿名方法):
Action<string> show = new Action<string>(delegate(string strInput)
{
Console.WriteLine("Hello,{0}!", strInput);
});
show("tiana0");
演示代码3(使用匿名方法,且去掉“new Action<string>(...)”):
Action<string> show = delegate(string strInput)
{
Console.WriteLine("Hello,{0}!", strInput);
};
show("tiana0");
演示代码4(使用Lambda表达式):
Action<string> show = new Action<string>((strInput) =>
{
Console.WriteLine("Hello,{0}!", strInput);
});
show("tiana0");
演示代码5(使用Lambda表达式,且去掉“new Action<string>(...)”):
Action<string> show = (strInput)=>
{
Console.WriteLine("Hello,{0}!", strInput);
};
show("tiana0");
可见,Lambda表达式本质上就是委托。
使用Lambda表达式可以简化我们的代码,这一点在LINQ中被充分的体现。
查看IL代码,你会发现,几种写法生成的中间代码一致。