例如,我定义一个委托:delegate int Method(int a, int b);再定义一个方法:int Add(int a, int b){ return a + b;}我可能需要这样通过委托调用方法:Method m += Add;Console.WriteLine(m(2, 3));====================================================但如果用 Lambda 表达式:Method m += (a ,b) => a + b;Console.WriteLine(m(2, 3));可以省去方法的定义。实际上, Lambda 表达式只是简化了匿名方法的语法而已。C# 2.0 的匿名方法语法有助于理解Method m += delegate(int a, int b) { return a + b; };Console.WriteLine(m(2, 3));--------------------------------------------+=(s,e) =>字符的含义public MainWindow()
{
InitializeComponent();
this.Loaded+=(s,e) =>DiscoverKinectSensor();
this.Unloaded+=(s,e) =>this.kinect=null;
}在上面的代码中,+=是在委托链上增加一个委托,(s,e)=>是一个lambda表达式。这个表达式创建一个委托,委托处理的主体就是=>后面的部分。其实这个写法相当于this.Loaded+=new EventHandler(Form_Loaded);private void Form_Loaded(object sender,EventArgs e){DiscoverKinectSensor();}
转载请注明原文地址: https://ju.6miu.com/read-22701.html