Func & Action 用法
2015年1月28日 星期三
Func & Action是委派用法,差別在於Func:有回傳值,Action:不需要回傳值
首先來看一下委派基本用法
//委派基本定義 public delegate string BaseDeletegate(string source); public static class ServiceBase { public static string Execute(BaseDeletegate action, string source) { string value = action.Invoke(source); return value; } } //呼叫委派用法 public static void runBaseDeletegate() { BaseDeletegate action = ResponseMsg; string result = ServiceBase.Execute(action, "Neil"); Console.WriteLine(result); Console.ReadLine(); } //執行的方法 public static string ResponseMsg(string str) { return "Hello:" + str; }執行結果
改成用Func方法
//Func定義 public static string ExecuteFunc(Funcaction) { return action(); //有回傳值 } //呼叫Func方法 public static void runBaseFunc() { string result = ServiceBase.ExecuteFunc(() => { return ResponseMsg("FuncNeil"); }); Console.WriteLine(result); Console.ReadLine(); } //執行的方法 public static string ResponseMsg(string str) { return "Hello:" + str; }
執行結果:
改成用Action方法
//Action定義 public static void ExecuteAction(Action action) { action(); //沒有回傳值 } //呼叫Action方法 public static void runBaseAction() { ServiceBase.ExecuteAction(() => { ActionResopnseMsg("ActionNeil"); }); } //執行的方法 public static void ActionResopnseMsg(string str) { Console.WriteLine("Hello:" + str); Console.ReadLine(); }
執行結果:
0 意見:
張貼留言