[C#] Lambda Expression - 簡化程式碼歷史 第三章

Lambda Expression 就是要簡化寫方法

前言

要給Func方法的時候 除了真的寫一個方法外還有一些減少程式碼的方式

匿名方法

MSDN - 匿名方法
看範例程式碼
 

請看紅線的地方 因為是匿名方法 所以不用取名稱 直接給Func 
所以就是把 public string Method 換成 delegate
注意方沒有參數的時候 就會是
​Func<string> doo= delegate () { return "B"; };

Lambda Expression

MSDN - Lambda 運算式
看範例程式碼
 

最大的差異 就是不用打delegate  改打=> (念作goes to)
位置換到輸入參數的 右邊去了
有大括號可以多行程式碼的寫法叫做陳述式 Lambda

還有更簡化的寫法就是想辦法簡化為一行code
就可以去除大括號 跟 return  就叫做運算式 Lambda
看範例程式碼
 


其實 輸入參數可以由Func就知道型別 所以int x的int 可以不用打
再加上只有一個參數時連括號都不用打
 


不過當有兩個參數時就不能省略括號的 
範例如下
 

改用Func完整範例

可以看到 最後程式碼 簡化了不少
 

結語

說明一下 委派那篇說道 Delegate  - 可能是你天天都用 但是卻不知道的功能的意思
現在應該常常會用到Linq的where 吧 那就是Delegate ( Func)
 

簡化程式碼歷史最後一篇 就到這邊啦 
下次再聊囉

如果內容有誤請多鞭策謝謝