将PowerShell数组传递给.NET函数
我想从.NET函数中获取大约10个将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);
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