两种表达方式之间有显著差异吗

本文关键字:表达方式 之间 两种 | 更新日期: 2023-09-27 18:25:30

我想知道使用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是一个"匿名"方法,它没有永久名称,而Delegate实际上是对方法或lambda的引用。大多数情况下,lambda会比代理更快,但在某些情况下,您只能使用代理或lambda,而不能使用两者。