-2

使用 lambda 表达式有什么意义。

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

使用兰巴

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

我想了解更多关于 lambda 以及它在 C# 中的更高级用法

4

1 回答 1

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);
于 2012-07-29T12:49:15.073 回答