के साथ उपक्रम करना टी के आधार पर जेनेरिक क्लास से "सामान्य" होना संभव है, टी से अधिक सामान्य पर आधारित एक सामान्य वर्ग में?जेनेरिक प्रकार पैरामीटर
उदाहरण के लिए, मेरे पास Derived
नामक एक वर्ग है जो Base
नाम की कक्षा से प्राप्त होती है। मैंने कभी कुछ इस तरह कर सकते हैं:
List<MyClonableType> specific = new List<MyClonableType>();
List<IClonable> general = (List<IClonable>)specific;
के रूप में यहाँ लिखा, इन उदाहरणों में से प्रत्येक एक InvalidCastException
के साथ विफल:
List<Derived> der = new List<Derived>();
List<Base> bas = (List<Base>) der;
या, इंटरफेस का उपयोग कर, यह कभी संभव कुछ इस तरह करना है। जिस प्रश्न के बारे में हम बहस कर रहे हैं वह यह है कि क्या यह वास्तव में असंभव है, या बस एक वाक्यविन्यास त्रुटि है जिसे ठीक किया जा सकता है अगर हम जानते थे कि कैसे।
जावा निर्माण के इस प्रकार के लिए ' extends X>' है, मुझे आश्चर्य होगा कि सी # समकक्ष नहीं है। – Romain
सी # में समान बाधाओं के लिए सामान्य बाधाएं (जहां कीवर्ड) है, लेकिन मैं ' मैं सकारात्मक नहीं हूं कि Auraseer के बाद क्या है। वह वास्तव में संग्रह पर भिन्नता का उपयोग करना चाहता है। –
@ रोमेन, वह कास्ट सी # में मान्य नहीं है, लेकिन आप 'विधि प्रक्रिया (सूची सूची) जैसी विधि को परिभाषित कर सकते हैं जहां टी: बेस {...} ' –
finnw