我试图从IronPython(VS-2012)调用.Net功能
.NET功能:
public int GetData(uint numberOfSamples, float[] iBuffer, float[] qBuffer){..}
IronPython的:
# Here's my code in IronPython
numSamples = 1024
from array import array
iData = array('f')
qData = array('f')
GetData(numSamples, iData, qData)
最后一行将抛出以下异常,(来自Locals Window -VS2012)
我该如何解决这个问题?
答案 0 :(得分:2)
您可以像这样传递floats
(System.Single
)数组:
iData = System.Array[System.Single]([1.0, 2.0, 3.0])
qData = System.Array[System.Single]([4.0, 5.0, 6.0])
GetData(numSamples, iData, qData)
编辑:如果你想预先分配数组并且没有实际的python内容,请使用:
iData = System.Array.CreateInstance(System.Single, 1024)
答案 1 :(得分:1)
虽然我接受了Pawals的答案,但我最终还是像这样使用了
iData = Array.CreateInstance(System.Single, 1024)
qData = Array.CreateInstance(System.Single, 1024)
我从article找到了。