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

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

C#:params 有啥用?

2019-11-14 10:51:43
字體:
來源:轉載
供稿:網友

C#.net中提供了一個關鍵字 params,以前都不知道有這個關鍵字,有一次,同事看到我的幾版重載函數后,淡定地和我說了一句,哥呀,你可以用params,后來查了查,現在經常用習慣了,這不剛才又把之前寫的幾版都拿掉了,又用params重構了下。

那么,我就把params的用處,我經歷的這個過程說一下。

1 問題的需求 在客戶端,客戶經常會變動查詢的字段,前幾天還是根據4個關鍵字段去服務器查詢幾個模型呢,今天,又想加1個查詢字段。

根據4個關鍵字段的查詢方法:

public void GetPlansByInputControl(string planState, string contactno,DatePair dp) { string planStat = ""; switch (planState) { case "...": planStat = "..."; break; case "...": planStat = "..."; break; } plans = getPlansWithCondition(Convert.ToDateTime(dp.startValue), Convert.ToDateTime(dp.endValue), planStat, contactno); }

調用的getPlansWithCondition方法為

PRivate List<MPartPlan> getMPartPlansWithCondition(DateTime dateTime, DateTime dateEndTime, string planStat, string contactNo) { var conditions = new CslSqlBaseSingleTable(); conditions.AddCondition("RequireStartDate", dateTime, DataCompareType.GreaterOrEqual); conditions.AddCondition("RequireStartDate", dateEndTime, DataCompareType.LessOrEqual); conditions.AddCondition("OrderCode", contactNo, DataCompareType.Equal); if (!string.IsNullOrEmpty(planStat)) { conditions.AddCondition("PlanState", planStat, DataCompareType.Equal); } return _cslMPartPlan.QueryListInSingleTable(typeof(MPartPlan), conditions); } }

問題來了,當查詢再新加1個字段時,你難道還再重載一個版本嗎?

2 應用params

private List<MPartPlan> getMPartPlansWithCondition(DateTime dateTime, DateTime dateEndTime, string planStat, string contactNo,string newField);

當C#提供了params后,當然不用,直接將getMPartPlansWithCondition改寫為如下

private List<MPartPlan> getMPartPlansWithCondition(params object[] queryConditions);{ queryConditions[0] queryConditions[1] queryConditions[2] queryConditions[3] queryConditions[4] //放到字典中dict sqlQuery(dict);}

以后隨意添加查詢字段,只要修改下這個函數就行了,不用增刪重載版本!!!

客戶端調用,直接加一個字段就行

_bsl.GetPlansByInputControl(field1, field2,field3,field4,field5);

3 總結

queryFun(params object[] objs),帶有這個參數的函數,只需要一個版本,這樣解決了因為個數不一致而導致的多個重載版本, 在客戶端調用時,將屬性參數一一列數即可。


上一篇:Redis(一 安裝使用)

下一篇:Java郵件

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和平区| 抚宁县| 岳阳市| 宝坻区| 长兴县| 武陟县| 延庆县| 章丘市| 镇安县| 定州市| 鹤岗市| 吴川市| 苍山县| 包头市| 宣汉县| 楚雄市| 军事| 淳化县| 阳朔县| 突泉县| 车致| 烟台市| 清镇市| 呼和浩特市| 丰原市| 剑阁县| 山丹县| 宣化县| 定兴县| 元氏县| 古交市| 武邑县| 富平县| 三门峡市| 保康县| 富裕县| 深州市| 桃园市| 元朗区| 务川| 原平市|