在Python中调用具有引用参数的.Net函数

时间:2014-11-18 16:06:12

标签: .net ironpython

我在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中的内容如何?

1 个答案:

答案 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)