C#中匿名函數和Lamda表達式介紹?

Tags: 函數, 表達式,

C#中的匿名函數和Lamda是很有意思的東東,那麼我們就來介紹一下,這到底是什麼玩意,有什麼用途了?

工具/原料

Visuai Studio

方法/步驟

打開visual studio 新建一個控制檯程序.

C#中匿名函數和Lamda表達式介紹

中匿名函數和Lamda表達式介紹#

我們利用委託來寫一個匿名函數.

代碼如下圖.

C#中匿名函數和Lamda表達式介紹

中匿名函數和Lamda表達式介紹#

我們再來用lambda表達式寫一次一模一樣的功能.

委託_算法 算法 = (double 參數一, double 參數二) => { Console.WriteLine("{0}*{1}={2}", 參數一, 參數二, 參數一 * 參數二); };

算法(5,2);

Console.ReadKey();

C#中匿名函數和Lamda表達式介紹

中匿名函數和Lamda表達式介紹#

一般我們學習C#的時候,說到匿名函數的時候都會談到lambda表達式.

其實lambda表達式就是匿名函數更為簡潔的一種寫法.

通俗點講,你需要寫一個函數,但是懶得給它起名字,而且懶得寫那麼多封裝和類.並且可能就這個地方調用,其他地方几乎不調用這段代碼,那麼我就可以用這個來搞定.

這個概念是來自函數式編程.這幾年貌似挺流行的,很多語言都加入了這個功能.

委託1 局_委託1 = () => { };

第一個等號後面的()裡面應該是放參數,但是因為我們上面聲明的委託裡面沒有參數,所以這裡也不寫參數.

第二個等號+大於號後面的{}裡面放的就是函數的實現過程.

lambda就是簡化了的匿名函數.

C#中匿名函數和Lamda表達式介紹

中匿名函數和Lamda表達式介紹#

第二種lambda表達式.

委託2 局_委託2 = (string name) => { };

C#中匿名函數和Lamda表達式介紹

中匿名函數和Lamda表達式介紹#

第三種 lambda表達式.

委託3 局_委託3 = (string name) => { return name+"是個大傻B"; };

Console.WriteLine(局_委託3("小豬"));

Console.ReadKey();

C#中匿名函數和Lamda表達式介紹

中匿名函數和Lamda表達式介紹#

注意事項

匿名函數的參數和返回值必須要和委託一樣.

相關問題答案