如何写一个公共的方法

chongerfei6810 2011-04-15 11:57:24
根据传参的不同加载不同的数据(从数据库获取的)绑定到界面上
我想写一个公共的方法,这样也便于维护,
我自己写了一个,如下
Public void LoadData(DataTypeEnum dataType)
{
stwich(dataType)
{
case 1:
List<Class1> lstUser=GetClass1List();
//绑定到界面
break;
case 2:
List<Class2> lstClass2=GetClassList();
//绑定到界面
break;
}
}

这个方法感觉不大好,如果数据多了这个方法会很难维护,请大家帮我出出主意,有什么更好的办法吗 ?
...全文
244 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hamber_Bao 2011-04-16
  • 打赏
  • 举报
回复
若是楼主每次都提取ID和NAME属性,可以去除开关语句,也就是说不需要进行判断了。
直接写一个方法,传参ID和Name,根据参数拼写SQL语句,从数据库读取就可以了。
然后绑定。

相信可以帮助你。
Hamber_Bao 2011-04-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bdmh 的回复:]
LoadData只负责返回数据集,绑定放到窗体中绑定
[/Quote]
貌似这个方法没有解决楼主的问题,如果LoadData方法只返回数据集,如果返回数据集,我还是得通过
开关语句进行判断。
JustLovePro 2011-04-16
  • 打赏
  • 举报
回复
这个设计其实违反了面向对象设计的要求的,switch语句会根据需求的变更一直修改。
建议如果是这样的设计可以先了解下设计模式:工厂模式或者策略模式。
xstong1982 2011-04-16
  • 打赏
  • 举报
回复
声明一个基类baseClass,只有Id Name的字段,和处理函数process,然后User和rights继承这个基类,并重载处理函数
甚至我觉得基类的id name都可以不需要,定义成接口就行了

处理的时候,根据dataType来定义基类baseClass bc = new User();

最后,直接调用bc.process()

[Quote=引用 5 楼 chongerfei6810 的回复:]
每次返回的是不同对象的List
可能是List<User> 也可能是List<rights>
但是我每次都只是取每个对象里面的Id和Name的值
[/Quote]
effun 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 chongerfei6810 的回复:]

每次返回的是不同对象的List
可能是List<User> 也可能是List<rights>
但是我每次都只是取每个对象里面的Id和Name的值

引用 2 楼 bdmh 的回复:
LoadData只负责返回数据集,绑定放到窗体中绑定
[/Quote]

数据绑定不需要用到泛型,因此方法的返回值可以是一个object[],这样就可以统一起来了啊。
js_ho 2011-04-15
  • 打赏
  • 举报
回复
为什么不试试泛型....
chongerfei6810 2011-04-15
  • 打赏
  • 举报
回复
每次返回的是不同对象的List
可能是List<User> 也可能是List<rights>
但是我每次都只是取每个对象里面的Id和Name的值

[Quote=引用 2 楼 bdmh 的回复:]
LoadData只负责返回数据集,绑定放到窗体中绑定
[/Quote]
chongerfei6810 2011-04-15
  • 打赏
  • 举报
回复
每次返回的是不同对象的List
可能是List<User> 也可能是List<rights>
但是我每次都只是取每个对象里面的Id和Name的值

[Quote=引用楼主 chongerfei6810 的回复:]
根据传参的不同加载不同的数据(从数据库获取的)绑定到界面上
我想写一个公共的方法,这样也便于维护,
我自己写了一个,如下
Public void LoadData(DataTypeEnum dataType)
{
stwich(dataType)
{
case 1:
List<Class1> lstUser=GetClass1List();
//绑定到界面
……
[/Quote]
w_f_y4422 2011-04-15
  • 打赏
  • 举报
回复

Public void LoadData(DataTypeEnum dataType)
{
List<Class1> lstUser;
stwich(dataType)
{
case 1:
lstUser=GetClass1List();
break;
case 2:
lstUser=GetClassList();
break;
}
//绑定到界面

}


尽量去除重复的代码
bdmh 2011-04-15
  • 打赏
  • 举报
回复
LoadData只负责返回数据集,绑定放到窗体中绑定

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧