是否有可能有多个params
参数在C#中?这样的事情:是否有多个“params”参数?
void foobar(params int[] foo, params string[] bar)
但我不知道这是可能的。如果是,编译器将如何决定在哪里分割参数?
是否有可能有多个params
参数在C#中?这样的事情:是否有多个“params”参数?
void foobar(params int[] foo, params string[] bar)
但我不知道这是可能的。如果是,编译器将如何决定在哪里分割参数?
不,这是不可能的。借此:
void Mult(params int[] arg1, params long[] arg2)
如何应该解释这个编译器:
Mult(1, 2, 3);
它可以被理解为任何一种:
Mult(new int[] { }, new long[] { 1, 2, 3 });
Mult(new int[] { 1 }, new long[] { 2, 3 });
Mult(new int[] { 1, 2 }, new long[] { 3 });
Mult(new int[] { 1, 2, 3 }, new long[] { });
你可以把两个数组像PARAMS但是:
void Mult(int[] arg1, params long[] arg2)
@newfal正确的,但我没有错,所以我被downvote很困惑。 – 2013-05-29 14:17:19
,因为您声明这是缺乏此功能的原因。 – nawfal 2013-05-29 14:18:45
如果PARAMS基团的类型是不同的,那么海誓山盟,编译器可以解释..例如可以说,方法(PARAMS INT []号码,则params串[]文本){} 。方法(34,76,“嗨”,“你好!”); – 2017-06-15 08:38:15
不,o只有一个参数是允许的,甚至必须是最后一个参数。阅读this
这将工作
public void Correct(int i, params string[] parg)
{}
但是,这是行不通的
public void Correct(params string[] parg, int i)
{}
这是不可能的。这可能是每个方法的声明只有一个params关键字 - 从MSDN - http://msdn.microsoft.com/en-us/library/w5zay9db(v=vs.71).aspx
void useMultipleParams(int[] foo, string[] bar)
{
}
useMultipleParams(new int[]{1,2}, new string[] {"1","2"})
您没有使用params关键词,因为它在问题中被问到。 – PVitt 2012-08-07 09:28:30
没有额外的参数在 方法声明中的params关键字之后被允许,并且只有一个PARAMS方法声明允许关键字在 中。
欢迎使用[所以]加里,在几乎同样多秒列出5个答案。为什么不传递一个类的参数?或者'>' –
2012-08-07 03:12:57
通过参加一个类的参数意味着什么? – garytchao 2012-08-07 20:57:43
我一直在遭受缺少此功能:( – nawfal 2013-05-29 05:42:50