मैंने एक साधारण प्रकार प्रदाता तैयार किया है जो मेरे पैरामीटर के आधार पर प्रकार प्रदान करता है। मैं जानना चाहता हूं कि प्रोविडड टाइप परिभाषाओं को परिभाषित करना संभव है जो किसी अन्य प्रोविडड टाइप परिभाषा का उत्तराधिकारी होगा?एफ # प्रकार प्रदाता विरासत
मुझे पता है कि स्थिर मैं क्या कर सकते हैं निम्नलिखित:
type People() = class end
type Student() =
inherit People()
type Teacher() =
inherit People()
और उसके बाद मैं इस का उपयोग कर टाइप टेस्ट पैटर्न की तरह पैटर्न मैच कर सकते हैं:
let f (x:People) =
match x with
| :? Student -> "Student"
| :? Teacher -> "Teacher"
| _ -> "Nothing !!"
मैं अपने प्रकार में करना चाहते हैं क्या प्रदाता प्रदाता टाइप टाइप परिभाषाएं बनाना है जो किसी अन्य प्रोविडड टाइप परिभाषा का उत्तराधिकारी है। इस तरह जब मैं उन प्रकारों को उत्पन्न करने के लिए प्रकार प्रदाता का उपयोग करता हूं, तो मैं उन पर पैटर्न मिलान कर सकता हूं (उदाहरण के लिए, मुझे पता है कि रनटाइम पर इस प्रकार में से एक को तत्काल किया जाएगा, लेकिन मुझे नहीं पता कि यह कौन सा है, यह प्रोविडड टाइप परिभाषाओं में से एक है)।
आपके समय के लिए धन्यवाद!
आपकी मदद के लिए धन्यवाद :)। इस समाधान के साथ मुद्दा यह है कि टीपी डीयू या रिकॉर्ड्स प्रदान नहीं करता है। मैं आपके द्वारा वर्णित 'व्यवसाय' प्रकार प्रदान करने में सक्षम नहीं होगा। – Leleutch
हाय लीलेच, मैंने टाइप संयम को समायोजित करने के लिए अपना उत्तर संपादित किया –