私がやりたいことは、任意の数の変数を関数に渡し、関数内でそれらの変数を操作し、関数のスコープ外でそれらの操作にアクセスできるようにすることです。
例
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、何とか、5」が表示されます。オブジェクト[]を返し、必要な変数を解析する以外にこれを行う方法はありますか?
明確にするために、これが私がやろうとしていることです。多数の変数とともに byte[] を関数に渡します。byte[] から情報を読み取って、渡された変数に割り当てようとします。つまり、int、string、および byte[] に書き込まれた別の int があり、次のようなものを渡します。
int x, y;
string s;
byte[] info = ...;
FunctionB(info, x, s, y);
Console.WriteLine("{0}, {1}, {2}", x, s, y);
byte[] から情報を出力します。