2012-07-29 123 views
-2

什麼是使用lambda表達式的意義。什麼是lambda表達式?

像在C#中有foreach循環,其使用蘭巴

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

可能需要3-4線分配值

我想更多的瞭解關於Lambda和更先進的C#

使用它
+0

我不能相信這不是一個重複的......但是如果它是我不認爲這是一個壞問題(稍微整理一下)。 – Liath 2014-06-17 10:14:32

回答

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)); 

拉姆達相當於是:

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

DoSomething(p => p.FullName);