是否有可能有多個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