2011-09-30 47 views

回答

3

這個符號是不帶參數的lambda expression。如果lambda表達式利用的論點,他們將在空集括號中的發言權的聲明...

this.Dispatcher.BeginInvoke((x, y) => { do some' with x and/or y }, 12, somevar);

概括地說,lambda表達式允許創建「無名」的功能,對他們在哪裏需要。
在這個問題的例子中,BeginInvoke()方法要求它的第一個參數是委託(一個「指向方法的指針」),這正是這個lambda表達式提供的。

6

=>是C#中的lambda operator,讀作「轉至」。 lambda表達式是一個匿名函數,可用於創建委託。

您的示例不帶任何參數,如lambda運算符前面的空過濾器所示。有一個參數一個lambda表達式可能是這樣的:

n => n.toString() 

該表達式將返回n字符串表示,在被調用時。 lambda表達式可以有多個參數,以及,在括號:

(n, f) => n.toString(f) 

一個常見的用途是在Func<T>

Func<int, string> getString = n => n.toString(); 
int num = 7; 
string numString = getString(num); 

這當然是一個愚蠢的例子,但希望幫助以說明其用途。

相關問題