我在VS2012中使用IronPython并尝试调用.Net函数,该函数接收Ref参数,
Lib.dll
public int GetValue(ref double value)
{
...
}
的Python:
import clr
clr.AddReference('Lib.dll')
from LibDll import *
value =0.0
x = GetValue(value)
我错过了什么,在C#中我们使用ref
以及变量名称,Python中的内容如何?
答案 0 :(得分:5)
有两种方法可以使用IronPython中的out或ref参数调用方法。
在第一种情况下,呼叫由自动编组处理。返回值和更改的引用都包含在元组中(并且 15.1 作为要传递的示例double)可以像:
(returned, referenced) = GetValue(15.1)
更明确的方法是提供准备好的clr-reference:
refParam = clr.Reference[System.Double](15.1)
result = GetValue(refParam)