FUNC與Action 簡單範例及使用時機簡述

  • 2900
  • 0
  • 2014-07-09

FUNC與Action 簡單範例及使用時機簡述

一.簡介Action 及 FUNC

    委托:方法參數化(委托、委派)。

1.Action:委派,無回傳值。(若沒回傳值則使用Action) 

使用方法:

宣告Action<參數類型1,參數類型2....>

呼叫Action(參入1,參數2)

2.FUNC:委派,有回傳值。

使用方法:

宣告FUNC<參數類型1,參數類型2....,回傳值類型>

呼叫var value= FUNC(參數類型1,參數類型2....)

 

二.範例說明:

    驗證該人員是否為臥底,自訂一個委派的方法來驗證是否為臥底。

 

使用委託的目地:因為驗證人員是否為臥底的條件都不同,所以將方法參數化(委託)可使驗證的自由度提高。

 

範例開始,以下範例都做同一件事情,那就是確認是否為臥底,只是使用的方法不同,請注意變數命名,有助於程式的可讀性。

 

人員類別(公用):

1.FUNC方法一

指定一個現有方法為驗證的委派(條件)。(行14;行26~34 此為驗證條件)

2.FUNC方法二

使用Lamda不指定方法,直接於TryConditionOfUndercover傳參時傳入委派的定義。(行44~49)

3.Action方法一

指定一個現有方法為驗證的委派(條件),由於無回傳值,故無法從委派方法得知是否為臥底,所以藉由委派內的方法輸出結果。(行15;行23~29 此為驗證條件)

 

4.Action方法二

使用Lamda不指定方法,,直接於TryConditionOfUndercover傳參時傳入委派的定義(行36~40 此為驗證條件)

 

以上各個方法的輸出結果:

小結:使用委派的時機,為輸入條件不變,但規則可任意改變時。例如此範例:要驗證的輸入條件為Employee,但驗證方法可以因不同的時機而改變,故使用委派。

 

附上實作範例程式:FuncByFindingUndercover.rar

 

By-藍小伙- 要習慣多層的委派,在搭上反射!