मेरे पास 2 प्रकार हैं: BaseQuestion
और Question
। Question
BaseQuestion
से कुछ गुण प्राप्त करता है। अब मैंने BaseQuestion
उपलब्ध कराने के लिए एक वेब एपीआई बनाया है। Question
डेटाटाइप में अतिरिक्त गुण हैं जिन्हें मैं उपलब्ध नहीं करना चाहता हूं। मेरे पास एक तरीका है जो Question
पुनर्प्राप्त करता है और मेरी प्रारंभिक योजना को केवल BaseQuestion
पर स्पष्ट रूप से अपनाना था। मैंने सोचा कि यह उन सभी अतिरिक्त संपत्तियों को खो देगा जिन्हें मैं सुलभ बनाना नहीं चाहता हूं और मैं इसे वापस कर सकता हूं। अच्छा, यह नहीं है। यह वही है जो मैं करता हूं:सी #: सुपरक्लास के पास अभी भी उपशीर्षक की जानकारी है
Question q = allQuestions[0];
BaseQuestion bq = q;
string type = bq.GetType().ToString();
बीक का प्रकार अभी भी "प्रश्न" है। मैं बेसक्वेस्टियन गुणों तक नहीं पहुंच सकता, लेकिन मैं उन्हें अभी भी डीबगर में देख सकता हूं और वे जेएसओएन आउटपुट में हैं जो मैं क्लाइंट को भेजता हूं।
किसी भी विचार पर मैं BaseQuestion
टाइप करने के लिए "बल" कैसे कर सकता हूं और उप-वर्ग में परिभाषित कोई गुण नहीं है?
चर BQ के प्रकार BaseQuestion है। ऑब्जेक्ट का रनटाइम प्रकार जिसे बीक संदर्भित करता है वह प्रश्न है। निश्चित नहीं है कि "बल बीक्यू को बेस क्वेस्टियन टाइप करने के लिए" क्या मतलब है।आप केवल वर्चुअल बीक के माध्यम से बेस क्वेस्टियन सदस्यों तक पहुंच पाएंगे। – lesscode
मुझे लगता है कि आपका भ्रम यह समझ में नहीं आता है कि आपने जो कुछ दिया है वह ** संदर्भ ** स्मृति में वस्तुओं के लिए है। –
साइमन, अच्छा बिंदु। तो मुझे दोबारा दोहराएं: मैं प्रकार का एक नया ऑब्जेक्ट कैसे बना सकता हूं प्रश्न और स्वचालित रूप से सभी संपत्ति मूल्यों की प्रतिलिपि बना सकता हूं? स्वचालित रूप से मेरा मतलब है कि मैं ** ** इसे लागू नहीं करना चाहता हूं। IMHO यह परिदृश्य मेरी स्थिति के लिए बिल्कुल अद्वितीय नहीं है और इसे .NET द्वारा कवर किया जाना चाहिए। – Jan