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(Func action)
{
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 意見:
張貼留言