c# - Calling descendant virtual methods from static method -
पहले इसे स्थापित करें।
मेरे पास
सार्वजनिक सार क्लास फ़ू {सार्वजनिक स्टेटिक रिक्त StaticMethod () {}} पब्लिक क्लास बार: फू {}
कॉल करने के लिए यह मान्य है
बार.स्थिकम पद्धति () ;
???
यदि हां, तो पिछले उदाहरण का विस्तार करें:
सार्वजनिक सार वर्ग Foo {सार्वजनिक स्थिर शून्य StaticMethod () {} सार्वजनिक सार शून्य वर्चुअल मेथड (); } पब्लिक क्लास बार: फू {सार्वजनिक ओवरराइड रिक्त वर्चुअलमर्थ () {ट्रेस.WriteLine ("आभासी से स्थिर !!!!"); }}
मुझे बेस क्लास में StaticMethod का निर्माण कैसे करना चाहिए ताकि मैं व्युत्पन्न वर्गों से VirtualMethod का उपयोग कर सकूं? ऐसा लगता है कि आज मेरे पास बहुत कम / बहुत कैफीन था और मेरे दिमाग में कुछ भी नहीं आया।
एचएम, मुझे पता है कि मैं स्थिर विधि से उदाहरण पद्धति नहीं खोल सकता। तो सवाल यह आता है:
क्या मैं आधार वर्ग की स्थिर विधि से व्युत्पन्न वर्ग का उदाहरण बना सकता हूं। जैसे कुछ का उपयोग करके:
सार्वजनिक स्थिर शून्य StaticMethod () {derived d = new derived (); d.VirtualMethod (); }
मैंने नए कीवर्ड का आविष्कार किया, जिसे चित्रण के प्रयोजन से प्राप्त किया गया है।
बीटीडब्लू, मैं यहां गैर प्रतिबिंब आधारित समाधान का पक्ष रखूंगा!
यहफिर, आपके संपादन के बाद, आपके प्रश्न ने मुझे सी ++ के बारे में सोचा।
मैंने इसे सी # में उपयोग करने के लिए कभी भी कोशिश नहीं की, लेकिन आपके पास एक नज़र है, जो आपको कुछ देना होगा:
सिस्टम का उपयोग करना; System.Collections.Generic का उपयोग कर; System.Text का उपयोग कर; System.Diagnostics का उपयोग कर; नामस्थान कंसोल अनुप्रयोग 3 {सार्वजनिक सार वर्ग Foo & lt; T & gt; जहां टी: फू & lt; T & gt ;, नया () {सार्वजनिक स्थिर शून्य} स्टेटिक मेथड () {टी टी = नया टी (); t.VirtualMethod (); } सार्वजनिक सार शून्य वर्चुअल मेथड (); } सार्वजनिक वर्ग बार: फू & lt; बार & gt; {सार्वजनिक ओवरराइड रहित वर्चुअलमथ () {System.Console.WriteLine ("आभासी से स्थिर !!!!"); }} वर्ग कार्यक्रम {स्थैतिक शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {बार.स्थिक पद्धति (); }}}
और कंसोल में इच्छित कोड <"> आभासी से स्थिर !!!!" संदेश प्रिंट करता है।
Comments
Post a Comment