代表还是Lambda?

时间:2013-04-27 12:53:37

标签: c# xamarin.android

我刚刚购买了Xamarin学生版,并在开始教程中阅读。

我找到了这个代码示例

lambda表达式,如下例所示:

aButton.Click += (sender, e) => {
    aLabel.Text = "Hello from the button";
};

相反,我们可以使用带有委托语法的C#2.0匿名方法:

aButton.Click += delegate(object sender, EventArgs e) {
    aLabel.Text = "Hello from the button";
};

来源为here

我的问题是

  1. 我何时或为何要使用委托(是的,我确实阅读了C#文档)

  2. 在这种情况下哪个更好?一个lambda或代表?

  3. 要明确:代码没有任何问题,我无法找出为什么要使用第一种或第二种方法。

1 个答案:

答案 0 :(得分:4)

没有区别!

C#2.0附带了匿名方法。 Labmda附带了C#3.0。

Labmda只是创建匿名方法(或根据上下文的表达式树)的简短形式。