我想要做的是能夠將任意數量的變量傳遞給一個函數,在函數內部操縱這些變量,並可以訪問功能範圍之外的操作。有沒有辦法在C#中實現「void func(out params object [] parameters)」#
例
void FunctionA()
{
int x = 1;
string s = "blah";
int y = 4;
FunctionB(out x, out s, out y);
Console.WriteLine("{0}, {1}, {2}", x, s, y);
}
void FunctionB(out params object[] parameters)
{
for(int ii = 0; ii < parameters.Length; ii++)
{
if(parameters[ii] is int) parameters[ii] = (int)parameters[ii] + 1;
}
}
調用泛函()之後在控制檯上應該有 「2,等等,5」。有沒有辦法做到這一點,返回一個對象[]並解析出我想要的變量?
爲了澄清,這裏是我正在嘗試做的。將一個byte []與一系列變量一起傳遞給一個函數。嘗試從字節[]中讀取信息並將其分配給傳入的變量。因此,如果我有一個int,一個字符串,並將另一個int寫入字節[],並且我傳入如下內容:
int x, y;
string s;
byte[] info = ...;
FunctionB(info, x, s, y);
Console.WriteLine("{0}, {1}, {2}", x, s, y);
它會輸出來自byte []的信息。
這不會編譯/工作嗎? – 2010-07-21 21:49:03
不編譯。 「參數不能包含所有指定的修飾符;參數上的修飾符太多」參數「上的錯誤」 – mphair 2010-07-21 21:51:36