using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LambdaSpace
{
public delegate void NoReturnWithPara(int x, int y);
class LambdaTest
{
public static void Show()
{
NoReturnWithPara method0 = new NoReturnWithPara(ShowSth);//.net1.1最原始的方法
NoReturnWithPara method1 = ShowSth;//简写的方法
NoReturnWithPara method2 = new NoReturnWithPara(
delegate(int x, int y)
{
Console.WriteLine("delegate show sth");
}
);//匿名方法的写法。很有用,有些回调函数可以
NoReturnWithPara method3 = new NoReturnWithPara(
(int x, int y)=>//箭头左边是参数,右边是方法体
{
Console.WriteLine("lambda show sth");
}
);//.net 3.0之后出现了lambda表达式
NoReturnWithPara method4 = new NoReturnWithPara(
(x, y) =>
Console.WriteLine("lambda show sth")
);//由于委托的严格显示,参数前面的类型也可以却掉;
//如果方法体只有一行,大括号和分号也可以去掉
NoReturnWithPara method5 =
(x, y) =>
Console.WriteLine("lambda show sth")
; //由于委托的严格显示,new一个委托类型的部分也可以去掉
//整理后得到如下的一行
NoReturnWithPara method6 = (x, y) => Console.WriteLine("lambda show sth");
//调用
method6(3, 4);
//综上所诉,lambda表达式的本质就是一个匿名方法
}
private static void ShowSth(int x, int y)
{
Console.WriteLine("show sth");
}
}
}
lambda表达式的本质
最新推荐文章于 2024-05-23 20:20:57 发布