C# 这两种表达方式有显著差异吗

C# 这两种表达方式有显著差异吗,c#,lambda,anonymous-function,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;

我想知道使用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;}

   }
}

两者是不同的:lambda是一个“匿名”方法,它没有永久名称,而委托实际上是对方法或lambda的引用。
大多数情况下,lambda会比delegate快,但在某些情况下,您只能使用delegate或lambda,而不能使用两者。

OP不是询问lambda和delegate之间的区别,而是询问两个语法之间的区别,以创建匿名方法并获得持有它的委托。碰巧,在运行时没有区别。您关于lambda比委托快的说法毫无意义。