से एफ # में प्रयोग किया जाता निर्दिष्ट विधि को जन्म देती है समर्थित नहीं है अपवाद मैं का उपयोग करता है एफ # में यह सामान्य कार्य हो सी #:ऑपरेटर (- -)() ऑपरेटर सी #
:Unhandled Exception: System.NotSupportedException: Specified method is not supported. at ProjA.MainClass.Main (System.String[] args) [0x00000] in <4f209fa43741462db3b8f73ac83c35a2>:0 [ERROR] FATAL UNHANDLED EXCEPTION: System.NotSupportedException: Specified method is not supported. at ProjA.MainClass.Main (System.String[] args) [0x00000] in <4f209fa43741462db3b8f73ac83c35a2>:0
int a = sub<int, int, int>(4, 1);
यह एक त्रुटि को जन्म देती है
कृपया ध्यान दें कि यह (+) ऑपरेटर के लिए या इनलाइन कीवर्ड के बिना ठीक काम करता है।
1) क्या मैं कुछ गलत कर रहा हूं या यह एक बग है?
2) क्या इस मुद्दे को दूर करने का कोई तरीका है (लेकिन मुझे इस फ़ंक्शन को सामान्य बनाने के लिए इनलाइन कीवर्ड की आवश्यकता है)?
3) क्या आपने सी # से f # फ़ंक्शन को कॉल करते समय कुछ ऐसा अनुभव किया है, आपने इसे कैसे हल किया?
मै मैकोज सिएरा पर मोनो 4.8 का उपयोग कर रहा हूं।
@EJoshuaS कंपाइलर स्वयं तीन पैरामीटर लागू करता है, जो अंतिम प्रकार के रिटर्न प्रकार के लिए होता है। तर्क टाइप करें संकलक द्वारा स्वचालित रूप से अनुमानित नहीं किया जा सकता है। जैसा कि मैंने उल्लेख किया है, अजीब चीज यह है कि जब मैं (-) से (+) बदलता हूं तो सब कुछ अपवाद के बिना ठीक काम करता है। – mateuszlewko
हां, कृपया मेरी पिछली टिप्पणी को अनदेखा करें, मैंने देखा कि एक बार मैंने इसे स्वयं करने की कोशिश की। मैं उस तरह के व्यवहार से थोड़ा आश्चर्यचकित हूं (मैंने अपनी मशीन पर एक ही चीज़ देखी है)। स्पष्ट रूप से "इनलाइन" कीवर्ड [थोड़ा अजीब हो सकता है] (http://stackoverflow.com/questions/4413324/how-does-f-inline-work) जब C# से F # पर कॉल किया जाता है - वास्तव में, जब मैं हटा देता हूं इनलाइन फ़ंक्शन यह सही ढंग से व्यवहार करता है - लेकिन मैं थोड़ा परेशान हूं कि यह "+" के लिए क्यों काम करेगा लेकिन नहीं - "। मैं वास्तव में वास्तव में एक स्पष्टीकरण देखना चाहता हूं कि यह क्यों है अगर कोई जानता है। – EJoshuaS
मुझे आश्चर्य होगा कि यह भी काम करता है - मुझे संदेह है कि यदि आप + का उपयोग करते हैं तो शायद आप किसी और चीज की परिभाषा को छाया दे रहे हैं। इनलाइन के लिए, एफ # कंपाइलर वास्तव में कोई फ़ंक्शन नहीं बनाता है, यह केवल कुछ मेटाडेटा बनाता है जो इसका उपयोग कर सकते हैं।तथ्य यह है कि सी # कंपाइलर इसे देखता है इस प्रकार आश्चर्यजनक है –