下面的方法能简写吗

caicoko 2008-07-09 10:36:49

object FuncDataView(object[] args)
{
if (args.Length == 1)
return Caicai.Framework.Data.DBHelperShortcut.Select(args[0].ToString()).Tables[0].DefaultView;
if (args.Length == 2)
return Caicai.Framework.Data.DBHelperShortcut.Select(args[0].ToString(), args[1].ToString()).Tables[0].DefaultView;
if (args.Length == 3)
return Caicai.Framework.Data.DBHelperShortcut.Select(args[0].ToString(), args[1].ToString(), args[2].ToString()).Tables[0].DefaultView;
if (args.Length == 4)
return Caicai.Framework.Data.DBHelperShortcut.Select(args[0].ToString(), args[1].ToString(), args[2].ToString(), args[3].ToString()).Tables[0].DefaultView;
return Caicai.Framework.Data.DBHelperShortcut.Select(args[0].ToString(), args[1].ToString(), args[2].ToString(), args[3].ToString(), args[4].ToString()).Tables[0].DefaultView;
}



请高手指点,里面判断语句能简写吧,就是根据参数的多少来决定重载的方法。 解决问题着直接满分,随意跟帖者不给分。
...全文
129 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhan2000 2008-07-09
  • 打赏
  • 举报
回复
Caicai.Framework.Data.DBHelperShortcut.Select(str).

这个select方法不是param string[]就不能这么使用
chinaicm 2008-07-09
  • 打赏
  • 举报
回复


String str = String.Empty;
for (int i = 0; i < args.Length; i++)
{
str += args[i].ToString() + ",";
}
str = str.Substring(0,str.LastIndexOf(','));
return Caicai.Framework.Data.DBHelperShortcut.Select(str).Tables[0].DefaultView;

JeffChung 2008-07-09
  • 打赏
  • 举报
回复
1.用case改写这么多if,结构会比较清晰
2.命名空间直接using,这里就不用写这么多冗余的代码了

针对这一段代码,最应该做的是像3楼说的,用动态数组作参数把select方法重写一下了,那调用时只要一句话。
wangwei155 2008-07-09
  • 打赏
  • 举报
回复
首先Caicai.Framework.Data应该是命名空间吧,怎么不直接用导入方式放在类头部?
另外不对的吧
return Caicai.Framework.Data.DBHelperShortcut.Select(str).Tables[0].DefaultView;
应该不对的,参数这样调用不行的,怎么不在Caicai.Framework.Data.DBHelperShortcut.Select(string[] str)方法 代替 重载方法
caicoko 2008-07-09
  • 打赏
  • 举报
回复
感谢楼主的回答,但是编译的时候提示错误

一 最匹配的重载方法具有一些无效参数
二 无法从“string[]”转换为“string
xhan2000 2008-07-09
  • 打赏
  • 举报
回复
当然可以

String[] str=new String[args.Length];
for(int i=0;i<str.Length;i++)
{
str[i]=args[i].ToString();
}
return Caicai.Framework.Data.DBHelperShortcut.Select(str).Tables[0].DefaultView;
caicoko 2008-07-09
  • 打赏
  • 举报
回复
谢谢,各位,怎么改写Select的方法具有下面的方法
Caicai.Framework.Data.DBHelperShortcut.Select(string[] args).

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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