कृपया मेरी कक्षा संरचना देखें। मुझे लगता है कि यह संभव है कि मैं विरासत के साथ और अधिक मज़ा लेना चाहूंगा।सी # - उन्नत विरासत
पहले एक आधार अमूर्त वर्ग है:
public abstract class PolicyDetailed<T> : PolicyDetailed where T : DataContainer
{
internal new abstract T GetActiveAsset();
}
अन्त में एक विशेष नीति वर्ग है:
public abstract class PolicyDetailed
{
internal abstract DataContainer GetActiveAsset();
}
अगला एक और अमूर्त वर्ग है, जो सामान्य है। AccidentContainer DataContainer से विरासत:
'PolicyAccident' does not implement inherited abstract member 'PolicyDetailed.GetActiveAsset()'
मुझे यकीन है कि क्या संशोधक मैं यहाँ का उपयोग करना चाहिए यह काम करने के लिए प्राप्त करने के लिए नहीं कर रहा हूँ:
public class PolicyAccident : PolicyDetailed<AccidentContainer>
{
internal override AccidentContainer GetActiveAsset()
{
return null;
}
}
संकलन के दौरान मैं निम्नलिखित त्रुटि मिलती है। हो सकता है कि मुझे यह भी लिखना चाहिए कि मैं क्या हासिल करना चाहता हूं: मेरे पास विभिन्न प्रकार की पॉलिसी ऑब्जेक्ट्स का संग्रह है (उदा। पॉलिसीएसीडेंट, पॉलिसी ट्रेवल इत्यादि) जो पॉलिसी से प्राप्त होते हैं, विभिन्न प्रकार के डेटाकंटनर (दुर्घटनाकंटर, ट्रैवलकंटनर इत्यादि) के साथ सूचीबद्ध। मैं उनमें से प्रत्येक पर "GetActiveAsset" विधि को उनके विशिष्ट प्रकार को जानने और नीति के माध्यम से संदर्भित करने के लिए कॉल करना चाहता हूं। साथ ही मैं प्रत्येक वर्ग को अपने विशिष्ट डेटाकॉन्टेनर सबक्लास को वापस करना चाहता हूं। क्या यह संभव है?
क्या यह स्पष्ट करना आपके लिए महत्वपूर्ण है कि विशिष्ट कंटेनर प्रकार उनके विशिष्ट नीति प्रकार लौटाते हैं? आप कहते हैं कि आप लौटाई गई वस्तुओं को नीति के रूप में संदर्भित करना चाहते हैं, और इस तरह आप वैसे भी विशिष्ट जानकारी खो देते हैं! (याद रखें कि AccidentContainer _IS_ डेटाकंटनर, और एक दुर्घटनाकंटर इस प्रकार किसी भी हस्ताक्षर को बदले बिना वापसी प्रकार डेटाकॉन्टेनर के साथ एक विधि से वापस किया जा सकता है) – olagjo
मुझे कोड के अन्य हिस्सों में इसकी आवश्यकता है, जहां मैं विशिष्ट प्रकार की नीति का संदर्भ देता हूं और इसका उपयोग करता हूं विशिष्ट कंटेनर। मैं दो विधियों का उपयोग करने पर विचार कर सकता हूं - कोई डेटाकंटनर ऑब्जेक्ट वापस करेगा, दूसरा एक निर्दिष्ट कंटेनर वापस कर सकता है (लेकिन यह बेकार लगता है :() – Rummy