我正在尝试编写一个方法,该方法将字节数组作为输入,将其他几种类型作为输出变量。该方法应该能够检查“输出”参数的类型并从字节数组中读取正确的值(这部分已经可以工作)。
但我找不到一种简单的方法来获取输出参数。
这是我到目前为止所得到的(已编辑,因为缺少逗号):
在方法内部Test,args参数具有正确的值,但它们自然永远不会到达其相应的简单变量ui16、i16等等......
当我将签名更改为
public static object[] Test(byte[] daten, object[] args);
然后return args;在函数结束时,我在函数外部获取值,但它们在 内部object[],并且我仍然需要在 中编写类似的内容main:
object[] o = Test(buffer, new object[] { ui16, i16, ui32, i32, b });
ui16 = (UInt16) o[0];
i16 = (Int16) o[1];
ui32 = (UInt32) o[2];
i32 = (Int32) o[3];
作为引用参数传递args是可行的,但是我必须声明另一个变量而不是传递new object[] { ui16, i16, ui32, i32, b }
我想,我需要参数和输出的混合:
public static void Test(byte[] daten, params out ui16, out i16, out ui32);
但params不适用于不同类型。
尚方宝剑之说
相关分类