請原諒我,如果這個尖叫新手但=>
在C#中的含義是什麼?上週我正在做一個演講,這個運營商(我認爲)是在ORM的背景下使用的。在我回到筆記之前,我並沒有真正關注語法的細節。「=>」是什麼意思?
回答
在C#的lambda operator被寫入 「=>」(通常是發音爲 「去」 當朗讀)。這意味着左側的參數被傳遞給右側的代碼塊(lambda函數/匿名委託)。所以如果你有一個Func或者Action(或者他們的任何一個具有更多類型參數的表兄弟),那麼你可以給它們分配一個lambda表達式,而不需要實例化一個委託或者有一個單獨的延遲處理方法:
//creates a Func that can be called later
Func<int,bool> f = i => i <= 10;
//calls the function with 12 substituted as the parameter
bool ret = f(12);
我從來沒有注意到當你將lambda與'小於或等於'粘在一起時有多混淆。它最終看起來像所有箭頭指向我。 – 2009-07-28 20:09:30
這是一個lambda運算符,是lambda expression的一部分。
所有lambda表達式使用拉姆達 運算符=>,它讀作 「去 於」。 lambda 運算符的左側指定輸入 參數(如果有的話),並且右側 包含表達式或語句 塊。 lambda表達式x => x * x被讀取爲「x轉到x次x」。
它是簡寫爲lambda的簡寫。
i => i++
是(排序的)一樣寫作:
delegate(int i)
{
i++;
}
在的上下文中:
void DoSomething(Action<int> doSomething)
{
doSomething(1);
}
DoSomething(delegate(int i) { i++; });
//declares an anonymous method
//and passes it to DoSomething
,它是(排序的)一樣寫作:
void increment(int i)
{
i++;
}
只是沒有給它一個名字,它可以讓你在線聲明一個函數,稱爲「匿名」函數。
當大聲說出運算符是lambda時(轉到)運算符有助於定義您在lambda中定義的匿名委託。
一個常見的地方看到這是一個事件處理程序。通過使用
this.Loaded += (o, e) => {
// code
}
您已經定義了一個匿名方法處理Loaded事件(它沒有名字):你會經常有由拉姆達用下面的代碼來處理AA頁面加載事件類型lambda表達式。它會讀作「o,e去......用foo定義方法」。
這是聲明匿名函數的語法,在C#中稱爲「lambda表達式」。
例如,(int p) => p * 2
表示一個函數,它接受一個整數並將其乘以2。
從技術上講,整體(int p)=> p * 2是一個lambda表達式。 =>只是lambda運算符。 – 2009-07-28 20:17:30
這是「lambda操作符」,並且您將其讀作「轉至」。假設你有聲明:
doSomething(x => x + " hi");
可以代替「=>」在你的心中有這樣的:
doSomething(delegate (string x) { return x + " hi" });
正如你所看到的,它提供了一個速記的挫折感。編譯器會計算出您傳遞的變量的類型,並允許您擺脫傳遞簽名變量的代碼的函數簽名和包圍。
由於沒有人提到它,但在VB.NET你使用function關鍵字來代替=>,就像這樣:
dim func = function() true
'or
dim func1 = function(x, y) x + y
dim result = func() ' result is True
dim result1 = func1(5, 2) ' result is 7
- 1. >> =是什麼意思?
- 2. Groovy,什麼意思 - >意思是
- 3. `^^^`和`〜>`是什麼意思?
- 4. 「 - >」是什麼意思?
- 5. <>是什麼意思?
- 6. <>是什麼意思?
- 7. '=>'是什麼意思?
- 8. `()=> Unit`是什麼意思?
- 9. > var是什麼意思?
- 10. 「 - >」是什麼意思?
- 11. 「=>」是什麼意思?
- 12. <+>是什麼意思?
- 13. 「outer =>」是什麼意思?
- 14. {< >}是什麼意思?
- 15. $ this->是什麼意思?
- 16. 什麼是()=> {}是什麼意思?
- 17. 是什麼意思:是什麼意思?
- 18. a >> = b是什麼意思?
- 19. > +和> - 是什麼意思在C#
- 20. >>和0xfffffff8是什麼意思?
- 21. >> = purescript中的意思是什麼?
- 22. class-> methode1() - > methode2()是什麼意思?
- 23. 「>> 1」是什麼意思?
- 24. 「somevar >> 0」是什麼意思?
- 25. 這是什麼意思? >> ActionController :: InvalidAuthenticityToken
- 26. 什麼是(int - > int) - >(int - > int)是什麼意思?
- 27. 「ptr = ptr - > next」這是什麼「 - >」是什麼意思? (C++)
- 28. 「<xs:sequence />」是什麼意思?
- 29. <meta - data>是什麼意思?
- 30. =>在php中是什麼意思?
這是一個重複。我找不到那一個。 – 2009-07-28 19:57:20
雖然這很難搜索。即使在Google上。 – 2009-07-28 20:16:51
他不知道它被稱爲「lambda操作符」。 – 2009-07-28 20:21:40