两个表达式之间是否存在显着差异

时间:2015-12-03 19:40:42

标签: c# lambda anonymous-function

我想知道使用Lambda表达式和委托匿名关键字类型之间是否存在差异。一个比另一个更受欢迎吗?从我所看到的,两者似乎都是可以互换的。

public delegate void SomeDel(string input);

public class myClass
{

   private ObjWithDel myObj;

   public myClass()
   {
    // Lambda Case
     myObj.DoDel += (val)=>{textbox1.Text = val;}

    // delegate keyword case
     myObj.DoDel += delegate(string val){textbox1.Text = val;}

   }
}

1 个答案:

答案 0 :(得分:-1)

两者是不同的:一个lambda是一个" anonymous"方法,它没有永久名称,而Delegate实际上是对方法或lambda的引用。 大多数时候,lambdas会比代表更快,但在那种情况下,你只能使用代表或lambda,而不是两个。