委托可以用delegate,Action和Func 實現。此處只記錄Action和Func的用法。
/// <summary> /// 備注:第一;委托只在邏輯層使用,委托提供異步方法,所以歸為異步文件夾 /// 第二: 此只提供了參數有個的泛型方法;可擴展,注意,func和adcion對參數有限制,最多16個 /// 第三:此處要做單例模式處理,並保證線程安全(不用內存處理數據,則不用) /// 第四:返回對象jsonMessage 只是臨時返回的對象,后期可能要更改為RequestParamePage對象。 此處需要將所有的接口的請求格式和返回格式統一,請求格式統一 難度比較大,盡量實現;返回格式比較好實現。 /// </summary> public class EntrustHelper { /// <summary> /// 功能:一個 返回JsonMessage 對象的泛型委托,參數只有一個 T /// 用法: EntrustFunc<string>(new Func<sring ,JsonMessage>(FunName),"123"); funName 方法名稱 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="funcA"></param> /// <param name="s"></param> /// <returns></returns> public JsonMessage EntrustFunc<T>(Func<T, JsonMessage> funcA, T s) { JsonMessage jsonMessage = new JsonMessage(); //異步用法 IAsyncResult result = funcA.BeginInvoke(s, null, null); //開始異步執行 jsonMessage = funcA.EndInvoke(result);//等待異步執行的結果 return funcA(s); } /// <summary> /// 功能:參數只有一個 的泛型委托,無返回值 /// 使用:Entrustction<string>(new Action<sring> actionName,"456"); actionName 方法名稱 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="actionA"></param> /// <param name="s"></param> public void Entrustction<T>(Action<T> actionA, T s) { //異步用法 IAsyncResult result = actionA.BeginInvoke(s, null, null); //開始異步執行 actionA.EndInvoke(result);//等待異步執行的結果 actionA(s); } }
個人記錄,如有錯誤,歡迎指出。
