位置:首頁 > 軟件操作教程 > 編程開發(fā) > C# > 問題詳情

C# 把Lambda表達式用于匿名方法

提問人:劉團圓發(fā)布時間:2020-12-08

    看一下Lambda表達式。Lambda.表達式是簡化匿名方法的語法的一種方式。實際上,Lambda表達式還有其他用處,但為了簡單起見,只介紹Lambda表達式的這個方面。使用Lambda表達式可以重寫上一節(jié)最后的一段代碼,如下所示:

    myTimer.Elapsed += (source,e) => WriteLine ("Event handler called after " + $"{ (source as Timer).Interval} milliseconds.");

    這段代碼初看上去有點讓人摸不著頭腦(除非很熟悉所謂的函數(shù)式編程語言,如Lisp或Haskell)。但如果仔細觀察,就會看出或至少推斷出代碼是如何工作的,它與所替代的匿名方法有什么關(guān)系。Lambda表達式由以下3個部分組成:

    ? 放在括號中的參數(shù)列表(未類型化)

    ? =>運算符 

    ? C#語句

   使用前面“匿名類型”中介紹的邏輯,從上下文中推斷出參數(shù)的類型。=>運算符只是把參數(shù)列表與表達式體分開。在調(diào)用Lambda表達式時,執(zhí)行表達式體。

    編譯器會提取這個Lambda表達式,創(chuàng)建一個匿名方法,其工作方式與匿名方法相同。其實,它會被編譯為相同或相似的CIL代碼。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部