2013-04-13 62 views
0

我已經看過=>在示例代碼中使用,但我不知道這個操作數是什麼調用。由於該術語只是符號,因此Google搜索並不是很有幫助。什麼是=>調用,它是如何在C#中使用的

下面是使用它的一個例子:

var rolesAllowed = rolePermission.Where(permission => permission.Permissions.Any(p => Demand.HasFlag(p.Type))).ToList(); 

這個問題是從那些如此肆無忌憚地標記爲「複製」不同。我一直在尋找表達的名字,所以我可以研究如何使用它。所謂的重複項目是爲那些已經知道=>被稱爲lambda表達式的人設計的。

我想感謝花時間閱讀和理解問題的人,併發布質量響應。

+0

看看這裏http://www.pcreview.co.uk/forums/does-symbol-mean-t3532445.html – AliK

+1

請注意,當您使用引號時,可以搜索運算符:'[C#]「=>」' –

回答

3

用於lambda expressions。本質上,Where函數接受的是另一個遍歷集合的函數。 =>的左側定義參數,右側是實際運行的函數。

+3

太好了,謝謝。因此,如果我要將示例代碼翻譯成英語句子,則應該是「在Permissions類中查找權限,將該類標記爲特定類型的權限,將其放入列表中,並將其分配給rolesAllowed變量「? –

+0

這聽起來像它描述了上述功能。 –

2

它被稱爲lambda operator,它是lambda expression語法的一部分。

Lambda表達式非常簡潔,可以創建anonymous methods

匿名方法例如:

button1.Click += delegate(System.Object o, System.EventArgs e) 
        { MessageBox.Show("Click!"); }; 

相同的代碼,但是這利用時間lambda表達式:

button1.Click += (o,e) => MessageBox.Show("Click!"); 

如圖所示,該語法是用於創作匿名方法,其中 極大簡化符號一堆參數可以通過 傳遞到一組語句中進行處理。 .NET平臺中的任何將代理對象 作爲參數的方法都可以用相關的lambda表達式替代,這通常會簡化您的代碼庫。

1

這是lambda operator,它創建了一個lambda表達式,就像一個匿名方法。

5

它被稱爲Lambda operator

要創建lambda表達式中,將在拉姆達操作者=>的左側指定輸入參數(如果有的話) ,並且你把表達 或另一側的語句塊。例如,lambda 表達式x => x * x指定一個名爲x的參數,並返回x平方的值。

Lambda表達式使用特殊語法。它們允許將函數用作變量或字段等數據。 lambda表達式語法使用=>運算符。這分開了anonymous function的參數和聲明正文。

=>運算符可以被看作爲「進入」並且它在聲明lambda表達式時總是被使用。

+1

我一直認爲它是'這樣的',但'去'也非常好,所以+1。 –

相關問題