पर कनवर्ट करें मैं इसे प्राप्त करके मौजूदा .NET फ्रेमवर्क क्लास को विस्तारित कर रहा हूं। मैं मूल प्रकार की ऑब्जेक्ट को व्युत्पन्न प्रकार में कैसे परिवर्तित करूं?कन्वर्ट/कास्ट प्रकार को व्युत्पन्न प्रकार
public class Results { //Framework methods }
public class MyResults : Results { //Nothing here }
//I call the framework method
public static MyResults GetResults()
{
Results results = new Results();
//Results results = new MyResults(); //tried this as well.
results = CallFrameworkMethod();
return (MyResults)results; //Throws runtime exception
}
मैं समझता हूँ कि ऐसा होता है के रूप में मैं एक व्युत्पन्न प्रकार के लिए एक आधार के प्रकार कास्ट करने के लिए कोशिश कर रहा हूँ और अगर व्युत्पन्न प्रकार अतिरिक्त गुण है, तो स्मृति आवंटित नहीं किया गया है। जब मैं अतिरिक्त गुण जोड़ता हूं, तो मुझे परवाह नहीं है कि क्या उन्हें शून्य में प्रारंभ किया गया है।
मैन्युअल प्रतिलिपि किए बिना मैं इसे कैसे कर सकता हूं?
इस प्रकार को विस्तारित करने के बजाय आप केवल एक एक्सटेंशन विधि बना सकते हैं? –
यह एक अच्छा विचार है। विस्तार विधियों के साथ, मैं नई विधियों को संलग्न कर सकता हूं। मैं वास्तव में प्रकार के लिए अतिरिक्त गुण/चर जोड़ नहीं सकता। – Nick
यह एक साधारण प्रतिलिपि निर्माता लिखने से बचने के लिए बहुत सारे काम की तरह लगता है। मुझे कई मामलों में पता है जो संभव नहीं है, लेकिन यह इस मामले में एक संभावित समाधान की तरह लगता है। – overslacked