2014-10-17 14 views
1

我使用pythonnet在CPython的,我設法安裝它,所以傳遞不同的參數,以C#動態庫

import clr 
clr.AddReference('Assembly') 

沒有工作。

在我的C#代碼,如果一個成員

public void Action(double Freq, double ChannelSpace, bool RefDoubler, bool RefD2, double RCounter, int DeviceIndex) 
    {... //something is done 
    } 

如果我現在嘗試做(在Python):

from Assembly import Class 
from System import Double, Int32,Boolean 
Class.Action(Double(3000), Double(10), Boolean(False), Boolean(False), Double(10), Int32(0)) 

它總是complainy說:

TypeError: No method matches given arguments 

爲什麼?

+3

我不知道蟒蛇,但這些應該不會是單獨的:'布爾(假,雙(10),Int32(0))' – 2014-10-17 12:33:19

+3

幾乎肯定會丟失''''。 – DavidG 2014-10-17 12:35:11

+4

如果該方法不是靜態的,那麼您必須使用類的實例來調用它,就像在Python中一樣。 – Dirk 2014-10-17 12:35:15

回答

2

由於該方法也不是一成不變的,你必須使用類的一個實例來調用它,即

from Assembly import Class 
obj = Class() 
obj.Action(...)