如何从Python中使用ref和out参数调用C#库函数?

问题描述 投票:0回答:2

我使用pythonnet而不是ironpython。

有一个这样的函数:

test(ref string p1,out string p2)

如何在Python 3.6中调用

test

import clr
import sys
import System
sys.path.append(r'd:\dll')  
clr.FindAssembly('communication.dll')  
from  communication import *  
dll=IEC62056()
dll.test(----------)
python .net ref python.net pythonnet
2个回答
1
投票

如果没有 communications.dll,我无法测试代码,因此请检查以下代码是否适合您:

import clr
import sys
sys.path.append("D:\\dll") # path to dll
clr.AddReference("communication") # add reference to communication.dll
from  communication import test

ref_string_p1 = "----------"
out_string_p2 = test(ref_string_p1)
print(out_string_p2)

0
投票

您可以将 ref 作为常规参数提供,并任意提供。 pythonnet 会将它们作为元组按位置返回。

假设c#中的

void test(ref string p1,out string p2)
, 你在 python 中得到
p1, p2 = test(p1, None)

© www.soinside.com 2019 - 2024. All rights reserved.