Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PowerShell数组传递给.NET函数_Powershell - Fatal编程技术网

将PowerShell数组传递给.NET函数

将PowerShell数组传递给.NET函数,powershell,Powershell,我想从.NET函数中获取大约10个short类型的值 在C#中,其工作原理如下: Int16[] values = new Int16[10]; Control1.ReadValues(values); $Control1.ReadValues([array][int16]$Result) C#语法是ReadValues(short[]values) 我试过这样的方法: Int16[] values = new Int16[10]; Control1.ReadValues(values);

我想从.NET函数中获取大约10个
short
类型的值

在C#中,其工作原理如下:

Int16[] values = new Int16[10];
Control1.ReadValues(values);
$Control1.ReadValues([array][int16]$Result)
C#语法是
ReadValues(short[]values)

我试过这样的方法:

Int16[] values = new Int16[10];
Control1.ReadValues(values);
$Control1.ReadValues([array][int16]$Result)

但是数组中只有零。

在您提到的注释中:

我相信C#函数有一个ref

因此,方法签名实际上是:

ReadValues(ref short[] values)
幸运的是,对于这种情况,PowerShell有一个
[ref]
类型的加速器

# Start by creating an array of Int16, length 10
$Result = [int16[]]@( ,0 * 10 )

# Pass the variable reference with the [ref] keyword
$Control1.ReadValues([ref]$Result)

有关更多信息,请参阅帮助文件

您所说的“但数组中只有零”是什么意思?
$Result
的值是多少?我还想知道它在C#中如何工作,没有返回值、ref或out?ReadValues函数返回10个非零值,但$Result数组只包含零。我猜我做得完全错误或者可能不可能?你能告诉我们
ReadValues()
的定义,或者告诉我们
Control1
是哪种类型吗?我相信C函数有一个ref