当从ironpython调用c#函数时如何处理ref参数

本文关键字:处理 参数 ref 何处理 调用 ironpython 函数 当从 | 更新日期: 2023-09-27 18:14:30

最近,我在我的c#项目中使用ironpython作为我的脚本引擎,我用它来开发插件,正如《ironpython in Action》一书中所描述的那样。但是当我用ref参数调用c#函数时,我不知道如何处理它!c#代码如下:

public class TestCSharp
{
    public void run(ref byte stop)
    {
        while(!stop)
        {
             // do something
        }
    }
}

ironpython代码如下:

inst = TestCSharp()
stop = System.Byte(0)
t = Thread(...)
// call inst.run() in thread t
inst.run(stop)
// do something
stop = System.byte(1)

但是in .run不能停止

有人知道为什么吗?如果我的方法不正确,如何实现我的需求?非常感谢!

当从ironpython调用c#函数时如何处理ref参数

它们作为结果元组返回:

>>> d = { "a":100.1, "b":200.2, "c":300.3 }
>>> from System.Collections.Generic import Dictionary
>>> d = Dictionary[str, float](d)
>>> d.TryGetValue("b")
(True, 200.2)
>>> d.TryGetValue("z")
(False, 0.0)