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

C# 把Lambda表達(dá)式用于匿名方法

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-08

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

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

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

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

    ? =>運(yùn)算符 

    ? C#語(yǔ)句

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

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

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

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