我有一個使用下面的構造函數創建一個互斥體的一些IronPython的代碼:IronPython的方法重載
public Mutex( bool initiallyOwned, string name, out bool createdNew )
由於最後一個參數是一個OUT參數你不將它傳遞給方法,而是運行此代碼時,它拋出一個TypeError說,互斥對象不是可迭代
mutex, sucess = Mutex(True, 'some_mutex')
:它成爲一個額外的返回值是這樣的。由於它只返回一個值,這導致我相信IronPython沒有選擇正確的過載。 Ironpython文檔說,你可以通過在方法對象上使用Overloads方法來控制調用的確切的重載。
下面的代碼位企圖,即,但是,我得到一個ValueError指出該指數超出範圍:
new_mutex = Mutex.__new__.Overloads[type(True), String, type(True)]
mutex, sucess = new_mutex(Mutex, True, 'some_mutex')
如果我嘗試使用過載屬性使用不同的過載是正確執行強制。任何人都知道我要去哪裏錯了?
這聽起來不是一個好主意,使構造函數有'out'參數。作爲工廠方法會更好。 –
@JeffMercado,他在這裏討論'System.Threading.Mutex'的構造函數 - 他根本不擁有該構造函數的簽名設計。 – sblom