2013-06-14 10 views
8

के साथ संगत नहीं है सबसे पहले, मेरी माफ़ी। यह पोस्ट थोड़ा अस्पष्ट हो सकता है। मुझे एक समस्या है जिसे मैं छोटे नमूना कोड खंड में पुन: उत्पन्न नहीं कर सकता। यहां मैं क्या करता हूं:एफ # त्रुटि प्रकार 'एक्स' प्रकार 'एक्स'

एफ # एप्लिकेशन एक एक्सएम स्कीमा (xsd.exe) से उत्पन्न सी # डोम का उपयोग करता है।

डीओएम का उदाहरण सी # में बनाया गया है और फ़ंक्शन कॉल से F # एप्लिकेशन पर लौटाया गया है।

उदाहरण (यहाँ नामित प्रकार 'एक्स' है) इस तरह वायुसेना # रिकॉर्ड में संग्रहीत किया जाता है:

match myRecord.Dom with 
| Some(dom) -> CSharpCode.Save(dom, filepath) // error: Type 'X' not compatible with type 'X' 

:

type Something = { Dom : X option } 

कोड में बाद में मैं इस तरह कुछ है तो मूल रूप से, मुझे सी # से डोम इंस्टेंस मिलता है और इसे वापस पास करता है। उपर्युक्त पंक्ति में, मुझे शीर्षक में उल्लिखित त्रुटि संदेश मिलता है: टाइप 'एक्स' टाइप 'एक्स' के साथ संगत नहीं है।

मुझे नहीं पता कि मुझे अपने सरल नमूना कार्यक्रम के रूप में क्या देखना चाहिए जहां मैं इसे पुन: उत्पन्न करने का प्रयास करता हूं, मैं कभी भी इस त्रुटि में नहीं चलता। कोई विचार?

+0

एक अनुमान - 2 अलग-अलग 'एक्स' प्रकार हैं - एक' CSharpCode.Save' और दूसरी '' कुछ 'की परिभाषा में तर्क के रूप में लिया जाता है। –

+0

क्या यह एकमात्र पैटर्न मिलान करने वाला मामला है? – nicolas

+0

बचाओ (..) इकाई का रिटर्न प्रकार है? – nicolas

उत्तर

1

इस troubleshooting page पर देखकर, 'प्रकार के साथ संगत नहीं' वाक्यांश सामान्य प्रकार मिलान के बजाय संख्यात्मक मानों के संदर्भ में उपयोग किया जाता है।

एक और अनुमान यह है कि आपके कोड नमूने में CSharpCode.Save(dom, filepath) है, लेकिन एफ # फ़ंक्शन तर्कों में अल्पविराम से अलग होने के बजाय सफेद जगह अलग-अलग हैं, इसलिए मुझे CSharpCode.Save dom filepath की उम्मीद होगी। क्या आपका नमूना dom, filepath के टुपल का निर्माण नहीं कर रहा है और इसे .Save पर पास करने का प्रयास कर रहा है?

संबंधित मुद्दे