2009-12-30 9 views
18

में .NET क्लास विधि ओवरलोड तक पहुंचने वाली त्रुटियां मेरे पास एक कक्षा है जिसे मैंने सी # में लिखा है। वर्ग दो तरीकों, हस्ताक्षर किया जा रहा है:IronPython

bool Navigate(string url) 
bool Navigate(Uri url) 

मैं क्या इकट्ठा से, IronPython क्रम कोशिश करते हैं और पारित कर दिया-में तर्क के आधार पर सबसे अच्छा अधिभार चयन करने के लिए माना जाता है। मेरे मामले में, मैं एक स्ट्रिंग जो मैं गैर-शून्य होने के लिए पता है में गुजर रहा हूँ, फिर भी मैं निम्नलिखित अपवाद:

अनेक लक्ष्य से मेल खा सकते: नेविगेट (उरी), नेविगेट (एसटीआर)

मेरी तर्क के रूप में देखकर एक स्ट्रिंग स्पष्ट रूप से है, आयरनपीथन क्यों जोर देता है कि कई लक्ष्य मिल सकते हैं? System.String को System.Uri पर नहीं डाला जाता है और इस तरह की दूसरी विधि अधिभार चयन के लिए व्यवहार्य उम्मीदवार नहीं होना चाहिए ...

+0

दिलचस्प, इस समस्या को स्वयं नहीं मिला और न ही मुझे पता चलेगा कि मुझे सलाह क्यों है कि मुझे डर है। – Finglas

+1

@ नाथन, मैं समस्या को पुन: उत्पन्न नहीं कर सका। मैंने आपके दो हस्ताक्षरों का उपयोग किया, और यह अपेक्षित के रूप में काम किया। मैं IronPython 2.6 फ़ाइनल का उपयोग कर रहा हूँ। –

+0

स्पष्ट रूप से मेरे बाकी वर्ग में कुछ अन्य प्रकार की अजीबता चल रही है। मुझे इस दौरान एक कामकाज मिला, लेकिन मेरी कक्षा परीक्षण के लिए यहां आसानी से प्रकाशित करने के लिए मेरे ढांचे से थोड़ा बंधी हुई है। –

उत्तर

3

ऐसा लगता है कि आयरनपीथन यह तय कर रहा है कि यह तारों को Uri एस में परिवर्तित कर सकता है। शायद यह एक "फीचर" है, मुझे नहीं पता। आप निम्न (source) जैसे कुछ कर सकते हैं:

navigate_string = myObj.Navigate.Overloads[type("")] 
navigate_string("asdf") 
संबंधित मुद्दे