国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

委托避免重復的try.catch的隨筆【轉載】

2019-11-17 02:46:43
字體:
來源:轉載
供稿:網友

委托避免重復的try.catch的隨筆【轉載】

讀了一位博友關于使用委托避免重復的try.catch的隨筆(原文地址:http://m.survivalescaperooms.com/foolishfox/archive/2010/07/30/1788416.html),有點感想,寫下來與大家分享.

補充一下原文的例子:

publicclassCatchExceptions{/// <summary>/// 捕獲異常的方法/// </summary>/// <param name="func">綁定到委托的方法</param>/// <returns>異常信息,如果為空則沒有產生異常</returns>publicstaticstringTryCatch(Action func){stringrunMsg = string.Empty;try{func();}catch(Exception ex){runMsg = ex.Message;}returnrunMsg;}/// <summary>/// 捕獲異常的方法/// </summary>/// <typeparam name="T">委托的參數類型</typeparam>/// <param name="func">綁定到委托的方法</param>/// <param name="param">委托的參數實例</param>/// <returns>異常信息,如果為空則沒有產生異常</returns>publicstaticstringTryCatch<T>(Action<T> func, T param){stringrunMsg = string.Empty;try{func(param);}catch(Exception ex){runMsg = ex.Message;}returnrunMsg;}/// <summary>/// 捕獲異常的方法/// </summary>/// <typeparam name="T1">委托的第一個參數類型</typeparam>/// <typeparam name="T2">委托的第二個參數類型</typeparam>/// <param name="func">綁定到委托的方法</param>/// <param name="param1">委托的第一個參數實例</param>/// <param name="param2">委托的第二個參數實例</param>/// <returns></returns>publicstaticstringTryCatch<T1, T2>(Action<T1, T2> func, T1 param1, T2 param2){stringrunMsg = string.Empty;try{func(param1, param2);}catch(Exception ex){runMsg = ex.Message;}returnrunMsg;}}

原文使用的是Func而此處使用的是Action,到底Func和Action有什么區別呢?

Action委托 表示 封裝一個方法,該方法不具有參數并且不返回值

Action<T>委托 是Action的泛型委托 表示封裝一個方法,該方法擁有一個參數并且不返回值

Action<T>委托多參數的形式為 Action<T1,T2,T3.....> 且最多只能有16個參數

再來看看Func委托.

Func<TResult>委托 表示 封裝一個沒有參數但返回TResult類型的值的方法

Func<T,TResult>委托 表示 封裝一個有一個參數但返回TResult類型的值的方法

Func<T,TResult>的多參數形式為 Func<T1,T2,T3.....,TResult> 且最多只能有16個參數

所以上述TryCatch方法的參數到底用Action還是Func取決于實際的使用情況,如果需要綁定到委托的方法有返回值,使用Func,如果沒有返回值,則使用Action

方法定義好了,如果調用呢?

這里我們定義一個有參數的方法和一個無參的方法

PRivatevoidDeleteObj(intobjID){//主體省略...}
    1. privatevoidAddObj()
      發表評論 共有條評論
      用戶名: 密碼:
      驗證碼: 匿名發表
      主站蜘蛛池模板: 天柱县| 锡林浩特市| 卓资县| 沈阳市| 昌图县| 淄博市| 刚察县| 尉犁县| 凤台县| 扎囊县| 大姚县| 晋州市| 锡林郭勒盟| 和顺县| 慈溪市| 寻甸| 丹棱县| 同心县| 翁牛特旗| 乌拉特前旗| 临澧县| 冀州市| 景洪市| 永寿县| 光泽县| 巴东县| 改则县| 温宿县| 陇西县| 阳高县| 沁源县| 靖宇县| 甘谷县| 颍上县| 平阳县| 清水县| 综艺| 息烽县| 永清县| 浦江县| 平邑县|
      <pre id="kluz4"></pre>
      <li id="kluz4"><legend id="kluz4"></legend></li>

        • <style id="kluz4"><dfn id="kluz4"></dfn></style>