inheritance - C# object initializer wanting to use wrong Add method -
मेरे पास निम्न श्रेणी के पदानुक्रम हैं:
सार्वजनिक वर्ग पंक्ति: आईसीलाइनेबल, आईसीओम्पेरेबल, आईक्वेटेबल और लेफ्टिनेंट ; राउ & gt ;, आईएसटीआईआरआईएनआईडीएक्सएबल, आईडीसीकेर & lt; स्ट्रिंग, स्ट्रिंग & gt; आईक्लॉन्किंग & lt; कीवेलपैयर & lt; स्ट्रिंग, स्ट्रिंग & gt; & gt ;, आईयमेरमैम & लेफ्टिनेंट; कीवेलपेअर & lt; स्ट्रिंग, स्ट्रिंग & gt; & gt ;, सिस्टम.कॉल्लेक्शन.आईएनएनएमेरेबल {} पब्लिक क्लास विशिष्ट रॉ: रो, IXmlSerializable, System.Collections.IEnumerable {publicVoid Add (KeyValuePair & lt; MyEnum, string & gt; आइटम) {}}
हालांकि, निम्न करने की कोशिश करने से त्रुटि आती है:
var परिणाम = नया विशिष्टराख {{MyEnum.Value, ""}, {MyEnum.OtherValue, ""}};
मुझे यह त्रुटि मिलती है:
संग्रह अधिभारकर्ता के लिए सबसे अच्छा अतिभारित विधि जोड़ें 'पंक्ति। जोड़ें (स्ट्रिंग, स्ट्रिंग)' में कुछ अमान्य तर्क हैं < / P>
मैं इसे कैसे बना सकता हूं ताकि व्युत्पन्न वर्ग SpecificRow
पर एक ऑब्जेक्ट प्रारंभकर्ता का उपयोग प्रकार MyEnum
को अनुमति देता है? ऐसा लगता है जैसे कि जोड़ें
विधि में विशिष्ट राउ
।
अपडेट: मैंने विशिष्ट रोर
इसलिए अब यह इस तरह दिखता है:
सार्वजनिक वर्ग विशिष्टर: पंक्ति, IXml सेरिअलाइज़ेबल, सिस्टम। कोलेक्शन। IEnumerable, ICollection & lt; KeyValuePair & lt; MyEnum, स्ट्रिंग & gt; & gt; {}
हालांकि, मुझे अभी भी वही जोड़ें
त्रुटि मिलती है मैं IDictionary & lt; MyEnum, string & gt;
को लागू करने की कोशिश करने जा रहा हूं।
कोई संग्रह आरंभकर्ता किसी भी आईसीोलिङ्क पर नहीं दिखता। ऐड (एक्स) विधि। अधिक विशेष रूप से, संग्रह प्रारंभकर्ता के लिए
नया विशिष्टर्रा {{? }}
सी # पर हस्ताक्षर जोड़ें (?) के साथ किसी भी विधि जोड़ें पर दिखता है; अगर ? कॉम्पेस की, सी # में एकाधिक बहस के साथ एक विधि जोड़ें। कंपाइलर के पास केवल्यूपेयर & lt;,> के बिल्कुल विशेष हैंडलिंग नहीं है। कारण {string, string}
काम करता है, क्योंकि आपके आधार वर्ग में एक अधिभार जोड़ें (स्ट्रिंग, स्ट्रिंग)
है, और नहीं क्योंकि यह है के लिए एक अधिभार जोड़ें (KeyValuePair & lt; स्ट्रिंग, स्ट्रिंग & gt;)
।
इसलिए
नए विशिष्ट राउ के लिए अपनी वाक्यविन्यास का समर्थन करने के लिए {{MyEnum.Value , ""}};
आपको फ़ॉर्म के अधिभार की आवश्यकता है
शून्य जोड़ें (MyEnum कुंजी, स्ट्रिंग मान)
ये सब है यह करने के लिए है
Comments
Post a Comment