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