Select 方法有四个重载方法,都是string类型的,如下
Select(string s1)
Select(string s1, string s2)
Select(string s1, string s2, string s3)
Select(string s1, string s2, string s3, string s4)我想增加下面一个方法,来根据参数的多少来决定重载上面的参数
Select(string[] args) 我目前所使用的方法,有没有方法简写下面的代码?public static string Select(string[] args)
{
if (args.Length == 1)
return Select(args[0].ToString());
if (args.Length == 2)
return Select(args[0].ToString(), args[1].ToString());
if (args.Length == 3)
return Select(args[0].ToString(), args[1].ToString(), args[2].ToString());
if (args.Length == 4)
return Select(args[0].ToString(), args[1].ToString(), args[2].ToString(), args[3].ToString());
return Select(args[0].ToString(), args[1].ToString(), args[2].ToString(), args[3].ToString(), args[4].ToString());
}
除了if和case一个一个判断还有其他简单方法吗?
Select(string s1)
Select(string s1, string s2)
Select(string s1, string s2, string s3)
Select(string s1, string s2, string s3, string s4)我想增加下面一个方法,来根据参数的多少来决定重载上面的参数
Select(string[] args) 我目前所使用的方法,有没有方法简写下面的代码?public static string Select(string[] args)
{
if (args.Length == 1)
return Select(args[0].ToString());
if (args.Length == 2)
return Select(args[0].ToString(), args[1].ToString());
if (args.Length == 3)
return Select(args[0].ToString(), args[1].ToString(), args[2].ToString());
if (args.Length == 4)
return Select(args[0].ToString(), args[1].ToString(), args[2].ToString(), args[3].ToString());
return Select(args[0].ToString(), args[1].ToString(), args[2].ToString(), args[3].ToString(), args[4].ToString());
}
除了if和case一个一个判断还有其他简单方法吗?
// 但是需要注意 程序的健壮性在这里!!!
public static string Select(params string[] args)
{
// 程序的健壮性在这里!!!
if(args == null) throw ArgumentNullExpcetion("args");
switch(args.Length) {
case 0:
return null; // throw ArgumentExpcetion("args"); // 足够的见状
case 1:
return Select(args[0]); // 不要无谓的调用 ToString(),浪费CPU
case 2:
return Select(args[0], args[1]);
case 3:
return Select(args[0], args[1], args[2]);
default:
return Select(args[0], args[1], args[2], args[3]);
}
{
Select(new string[]{arg1});
}
Select(string arg1, string arg2)
{
Select(new string[]{arg1, arg2});
}
{
string str[]=new string[args.Length];
for(int i=0;i<args.Length,i++)
{
str[i]=args[i];
}
return Select(str);
}
应该是这样吧。我用手写可能会写错,但是你应该看的明白这个思路就行了。