将PowerShell数组传递给.NET函数

时间:2016-05-03 09:17:40

标签: powershell

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

在C#中它的工作原理如下:

Int16[] values = new Int16[10];
Control1.ReadValues(values);

C#语法为ReadValues(short[] values)

我试过这样的事情:

$Control1.ReadValues([array][int16]$Result)

但阵列中只有零。

1 个答案:

答案 0 :(得分:2)

在你提到的评论中:

  

我相信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)

如需更多信息,请参阅about_Ref帮助文件