读书人

请教这段代码还能再提取出来方法吗

发布时间: 2013-07-08 14:13:00 作者: rapoo

请问这段代码还能再提取出来方法吗?


private static void GetHCPInfo()
{
try
{
string json = HttpUtil.GetJson(""); //请求链接得道json数据

if (!string.IsNullOrEmpty(json))
{
JsonClientReceive jsonData = JsonUtil.Deserialize<JsonClientReceive>(json.Replace("\\", ""));
if (jsonData.success)
{
DataTable dt = new DataTable();
List<ClientReceive> list = (List<ClientReceive>)jsonData.data;
if (list.Count > 0)
{
dt = iPower.Common.Common.ListToDataTable<ClientReceive>(list);

}
Log.Debug(string.Format("获取{0}条数据", list.Count));
DBMethod(dt, @"DC.Proc_Interface_Hcp", "@BPIDTable");
}
else


{
Log.Debug(jsonData.error);
}
}
}
catch (Exception e)
{

Log.Error(e);
}
}


上面的代码是多个方法中的其中一个,其他几个方法里面的操作很多就是跟这个一样的,我想着能不能把这里面的操作再提取出来另立一个方法呢?要怎么做呢?
[解决办法]
不知道你的业务逻辑,如果你这段代码中连接是可变的,那么就把连接当作这个函数的一个参数,如果需要返回数据集供ui使用,那么就定义返回类型为datatable并返回dt
[解决办法]
提取json字符串到Datatable可以封装一个公共的方法

[解决办法]
这个是根据需要来的。
如果有很多方法中有同样的代码,为了提高重用性,你可以提取出来。
如果为了逻辑更清楚,你也可以把一部分代码提取出来。
如果为了使方法体不至于那么臃肿,你也可以提取一部分出来。

你给出的代码,如果你想提取。可以提取很多。不过我认为二楼的建议不错。
[解决办法]
你直接把相同的部分提取出来,然后把变化的部分作为参数,然后调用的时候只要通过传入参数的方式来区分了。
[解决办法]
DataTable dt = new DataTable();
List<ClientReceive> list = (List<ClientReceive>)jsonData.data;
if (list.Count > 0)
{


dt = iPower.Common.Common.ListToDataTable<ClientReceive>(list);

}
Log.Debug(string.Format("获取{0}条数据", list.Count));
DBMethod(dt, @"DC.Proc_Interface_Hcp", "@BPIDTable");

读书人网 >C#

热点推荐