[C#] 委派 Delegate 與 Lambda

  • 9589
  • 0
  • C#
  • 2018-04-14

委派 Delegate

講的簡單一點 他就像一個轉接頭

你充 iphone 需要轉接頭 但轉接頭的兩端能插什麼線是固定的

你買了 Type-C 的線 就不可能插進 Micro USB 的孔

但也就是說 只要是插的進去的線 就都可以讓你充電

今天你有錢可以用原廠的線 明天比較窮就用夜市牌的

反正只要插的進轉接器 就是可以用的線

...繼續閱讀 »

[Task - 2] Wait 與 ContinueWith

  • 29909
  • 0
  • C#
  • 2018-04-09

前面我們看過了 Task 幾種使用方法

那如果今天我們想要的是

1. 三個好友同時搶廉航機票,只要任一人搶成功,就可以成行

=> Task.WaitAny

2. 三個好友同時從起點出發,全部都抵達終點才算獲勝

=> Task.WaitAll

3. 三個好友接力賽跑,A 跑完才能換 B,B 跑完才能換 C

=> ContinueWith

...繼續閱讀 »

[Task - 1] 使用 Task 的各種方式

  • 30418
  • 0
  • C#
  • 2018-04-09

在比較久以前的.NET Framework版本 大家可能直接操作過Thread

一言以蔽之 在絕大部份情況下

建議大家使用 Task 取代 Thread

 

再一個問題

前面我們討論過 Parallel,當然我們也可以同時 new 很多 Task,讓結果就像是 Parallel

那我該選擇哪個?

一言以蔽之 在絕大部份情況下

建議大家用 Parallel 取代 多個 Task

...繼續閱讀 »

[平行處理 - 1] Parallel.ForEach

  • 4853
  • 0
  • C#
  • 2018-04-09

假設媽媽跟你說 今天晚上九點時 你有三件事要做

1. 掃地 2. 洗澡 3. 洗碗

因為這三件事並不存在先後關係 所以哪件先做都可以

而聰明如你一定會想 如果我可以同時掃地、洗澡、洗碗一起做

那不是就太好了嗎

...繼續閱讀 »

[Reflection]簡單的C# Reflection練習

  • 5338
  • 0
  • C#
  • 2018-04-08

其實Reflection不難  但就是效能比不上hard code好

如果應用的情境不需在意效能 拿來處理一些瑣碎的小功能是蠻好用的

今天我們以假設要輸入一個字串List => 取回 不重覆、並排除空字串、Null、前後空白為例

來寫一個小function

...繼續閱讀 »