मैं समझता हूं कि स्थैतिक विधि विरासत C # में समर्थित नहीं है। मैंने कई चर्चाएँ भी पढ़ी हैं (यहाँ सहित) जिसमें डेवलपर्स इस कार्यक्षमता की आवश्यकता का दावा करते हैं, जिस पर विशिष्ट प्रतिक्रिया है "यदि आपको स्थैतिक सदस्य विरासत की आवश्यकता है, तो आपके डिज़ाइन में दोष है"।
ठीक है, यह देखते हुए कि ओओपी मुझे स्थिर विरासत के बारे में सोचना भी नहीं चाहता है, मुझे यह निष्कर्ष निकालना चाहिए कि इसके लिए मेरी स्पष्ट आवश्यकता मेरे डिजाइन में त्रुटि की ओर इशारा करती है। लेकिन, मैं फंस गया हूं। मैं वास्तव में इसे हल करने में कुछ मदद की सराहना करूंगा। यहां है चुनौती ...
मैं एक सार आधार वर्ग बनाना चाहता हूं (इसे एक फल कहते हैं) जो कुछ जटिल आरंभीकरण कोड को कूटबद्ध करता है। इस कोड को कंस्ट्रक्टर में नहीं रखा जा सकता है, क्योंकि यह कुछ वर्चुअल विधि कॉल पर निर्भर करेगा।
फलों को अन्य ठोस वर्गों (ऐप्पल, ऑरेंज) द्वारा विरासत में प्राप्त किया जाएगा, जिनमें से प्रत्येक को एक मानक कारखाना विधि CreateInstance () को एक उदाहरण बनाने और आरंभ करने के लिए उजागर करना होगा।
यदि स्थिर सदस्य उत्तराधिकार संभव था, तो मैं कारखाने की विधि को आधार वर्ग में रखूंगा और उस प्रकार को प्राप्त करने के लिए व्युत्पन्न वर्ग के लिए एक आभासी विधि कॉल का उपयोग करूंगा जिसमें से एक ठोस उदाहरण को आरंभीकृत किया जाना चाहिए। क्लाइंट कोड Apple.CreateInstance () को पूरी तरह से प्रारंभिक Apple उदाहरण प्राप्त करने के लिए सरल करेगा।
लेकिन स्पष्ट रूप से यह संभव नहीं है, इसलिए कोई यह बता सकता है कि उसी कार्यक्षमता को समायोजित करने के लिए मेरे डिजाइन को कैसे बदलना होगा।