我想做的是能够将任意数量的变量传递到函数中,在函数内部操作这些变量,并在函数范围之外访问这些操作。
例子
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;
}
}
调用 FunctionA() 后,控制台上应该有“2, blah, 5”。有没有办法做到这一点,而不是返回一个 object[] 并解析出我想要的变量?
为了澄清起见,这就是我正在尝试做的事情。将 byte[] 和大量变量一起传递给函数。尝试从 byte[] 中读取信息并将其分配给传入的变量。因此,如果我将一个 int、一个字符串和另一个 int 写入 byte[] 并传入如下内容:
int x, y;
string s;
byte[] info = ...;
FunctionB(info, x, s, y);
Console.WriteLine("{0}, {1}, {2}", x, s, y);
它将从 byte[] 输出信息。