从IronPython调用.Net功能[VS2012]

时间:2014-11-20 16:59:38

标签: .net arrays ironpython

我试图从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)

enter image description here

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

您可以像这样传递floatsSystem.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找到了。