मेरे पास स्लाइड ऑब्जेक्ट्स की निम्न सूची है। ऑब्जेक्ट के 'टाइप' var के मान के आधार पर मैं सूची में स्लाइड ऑब्जेक्ट को अपस्टास्ट करना चाहता हूं। क्या यह संभव है?सी # किसी ऑब्जेक्ट को डाउनकास्ट कैसे करें
foreach(Slide slide in slidePack.slides)
{
if(slide.type == SlideType.SECTION_MARKER)
{
//upcast Slide to Section
}
}
Section
Slide
प्रदान करता है और एक और पैरामीटर कहते हैं।
मुझे एक डाउनकास्ट की तरह लगता है। वैसे भी, यह करने के लिए यह खतरनाक (या एक डिजाइन दोष) है। अधिक विशिष्ट प्रकार के लिए डाउनकास्टिंग करके, आप ऑब्जेक्ट से अधिक होने की अपेक्षा कर रहे हैं, इससे संभाल सकने में सक्षम हो सकता है। यदि आपको डाउनकास्ट की आवश्यकता महसूस होती है, तो इंटरफेस का उपयोग करने पर विचार करें। –
सहमत हैं कि इन स्थितियों में से कुछ में इंटरफेस उपयोगी हो सकते हैं, लेकिन मुझे नहीं लगता कि हमें "कभी भी कमजोर नहीं होना चाहिए"। यह हमेशा एक डिजाइन दोष नहीं है, और न ही यह आवश्यक खतरनाक है। – Allan