我有一个简单的VB.NET窗体,充当一个公共API的控件库接口。我可以传递数组的子集在VB.NET中运行吗?
其中一个API调用需要UIntegers的ByRef的数组:
Public Function Get_Values(source_id As Byte, first_value_address As Byte, number_of_values As Byte, ByRef valuesOut As UInteger()) As Integer
通话结束后,valuesOut将开始first_value_address
持有值的列表number_of_values
长从source_id
。
存在一个硬件驱动限制,无论请求长度如何,返回值的最大数量为15。我需要从我的VB.NET代码中获取28个值到数组中。
是否可以只发送一部分数组变量到函数类似于下面的C代码?
uint[28] values;
Get_Values(0, 0, 15, values); // Get first part
Get_Values(0, 15, 13, &values[15]); // Get second part of data
ByRef是库函数的产物。这实际上是一个C#输出参数 – CodeFusionMobile 2010-06-25 17:16:19
@CSharperWithJava:实际上,out是C#特有的特性。 IL本身没有“out”的概念,只有'ref'。 C#只是验证你的函数在所有返回路径中赋值给变量的编译时间。除此之外,这个答案应该是正确的。 – 2010-06-25 17:18:03