我想知道使用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;}
}
}
答案 0 :(得分:-1)
两者是不同的:一个lambda是一个" anonymous"方法,它没有永久名称,而Delegate实际上是对方法或lambda的引用。 大多数时候,lambdas会比代表更快,但在那种情况下,你只能使用代表或lambda,而不是两个。