不是本人所寫!網絡收集算法
C#中的匿名函數和Lamda是頗有意思的東東,那麼咱們就來介紹一下,這究竟是什麼玩意,有什麼用途了?編程
打開visual studio 新建一個控制檯程序.
網絡
咱們利用委託來寫一個匿名函數.
代碼以下圖.
函數式編程
咱們再來用lambda表達式寫一次如出一轍的功能.
委託_算法 算法 = (double 參數一, double 參數二) => { Console.WriteLine("{0}{1}={2}", 參數一, 參數二, 參數一 參數二); };
算法(5,2);
Console.ReadKey();
函數
通常咱們學習C#的時候,說到匿名函數的時候都會談到lambda表達式.
其實lambda表達式就是匿名函數更爲簡潔的一種寫法.
通俗點講,你須要寫一個函數,可是懶得給它起名字,並且懶得寫那麼多封裝和類.而且可能就這個地方調用,其餘地方几乎不調用這段代碼,那麼我就能夠用這個來搞定.學習
這個概念是來自函數式編程.這幾年貌似挺流行的,不少語言都加入了這個功能.
委託1 局_委託1 = () => { };
第一個等號後面的()裏面應該是放參數,可是由於咱們上面聲明的委託裏面沒有參數,因此這裏也不寫參數.
第二個等號+大於號後面的{}裏面放的就是函數的實現過程.
lambda就是簡化了的匿名函數.
blog
第二種lambda表達式.
委託2 局_委託2 = (string name) => { };
string
第三種 lambda表達式.
委託3 局_委託3 = (string name) => { return name+"是個大傻B"; };
Console.WriteLine(局_委託3("小豬"));
Console.ReadKey();
it
注意事項
匿名函數的參數和返回值必需要和委託同樣.io