C# Lambda表達(dá)式的參數(shù)
在前面的代碼中,Lambda表達(dá)式使用類型推理功能來確定所傳遞的參數(shù)類型。實(shí)際上這不是必需的,也可以定義類型。例如,可使用下面的Lambda表達(dá)式:
(int paramA, int paramB) => paramA + paramB
其優(yōu)點(diǎn)是代碼更便于理解,缺點(diǎn)是不夠簡明靈活。在前面委托類型的示例中,可以通過隱式類型化的Lambda表達(dá)式來使用其他數(shù)字類型,例如,long變量。
注意,不能在同一個(gè)Lambda表達(dá)式中同時(shí)使用隱式和顯式的參數(shù)類型。下面的Lambda表達(dá)式就不會(huì)編譯,因?yàn)閜aramA是顯式類型化的,而paramB是隱式類型化的:
(int paramA, paramB) => paramA + paramB
Lambda表達(dá)式的參數(shù)列表始終包含一個(gè)用逗號(hào)分隔的列表,其中的參數(shù)要么都是顯式類型化的,要么都是隱式類型化的。如果只有一個(gè)隱式類型化的參數(shù),就可以省略括號(hào);否則就需要在參數(shù)列表上加上括號(hào),如前面所示。例如,下面的Lambda表達(dá)式只有一個(gè)參數(shù),且是隱式類型化的:
paraml => paraml * paraml
還可以定義沒有參數(shù)的Lambda表達(dá)式,這使用空括號(hào)來表示:
()=> Math.PI
當(dāng)委托不需要參數(shù),但需要返回一個(gè)double值時(shí),就可以使用這個(gè)Lambda表達(dá)式。
點(diǎn)擊加載更多評(píng)論>>