가 나는 다음과 같은 생성자를 사용하여 뮤텍스를 만드는 일부 IronPython의 코드가 과부하 : 마지막 매개 변수가 out 매개 변수이기 때문에IronPython의 방법
public Mutex( bool initiallyOwned, string name, out bool createdNew )
당신이 방법에 건네 대신하지 않습니다 이 코드는 뮤텍스 객체가 반복 가능한 아니라고 말하는 형식 오류가 발생합니다 실행하면
mutex, sucess = Mutex(True, 'some_mutex')
: 그것은이 같은 여분의 반환 값이됩니다. IronPython이 하나의 값만 리턴하기 때문에 IronPython이 올바른 과부하를 선택하지 않는다고 생각하게됩니다. Ironpython 설명서에는 메서드 개체에 대해 Overloads 메서드를 사용하여 호출되는 정확한 오버로드를 제어 할 수 있다고 나와 있습니다.
new_mutex = Mutex.__new__.Overloads[type(True), String, type(True)]
mutex, sucess = new_mutex(Mutex, True, 'some_mutex')
내가 오버로드를 사용하려고하면이 제대로 실행하는 다른 오버로드를 사용하여 강제로 속성 :
코드의 다음 비트는, 그러나, 내가 얻을 수있는 ValueError를 인덱스가 범위를 벗어났습니다한다는을 시도합니다 . 누구 내가 잘못 가고 있는지 알아?
생성자에 'out'매개 변수를 지정하는 것은 좋지 않은 것처럼 들립니다. 그것은 공장 방법으로 더 나을 것입니다. –
@JeffMercado, 그는 여기에 'System.Threading.Mutex'의 생성자에 대해 이야기하고 있습니다. 그는 그 생성자의 서명 디자인을 전혀 소유하지 않습니다. – sblom