什么是lambda表达式?

时间:2012-07-29 12:35:53

标签: asp.net asp.net-mvc lambda expression-trees

使用lambda表达式的意义是什么。

就像在C#中那样,foreach循环可能需要3-4行来分配值

使用lamba

List.foreach(x=>x.something = new value) 

我想了解更多有关lambda及其在C#

中的更多先进用法

1 个答案:

答案 0 :(得分:3)

lambda表达式不再是方法的简写语法。

采用以下lambda表达式:

p => p.FullName

这相当于:

string getFullName(Person p)
{
    return p.FullName;
}

它的用法允许您创建匿名函数。因此,采用委托的方法将被定义为:

public delegate string FullNameDelegate(Person p);
public void DoSomething(FullNameDelegate getter)
{
   Person p = new Person();
   string fullname = getter(p);
}
public string GetFullName(Person p)
{
    return p.FullName;
}

DoSomething(new FullNameDelegate(GetFullName));

lambda等价物是:

public void DoSomething(Func<Person, string> getter)
{
   Person p = new Person();
   string fullname = getter(p);
}

DoSomething(p => p.FullName);