निम्नलिखित कोड को देखते हुए, क्या कोई तरीका है कि मैं विधि ए के संस्करण ए के संस्करण को कॉल कर सकता हूं?मैं एक ओवरराइड वर्चुअल विधि के 'आधार कार्यान्वयन' को कैसे कॉल कर सकता हूं?
class A
{
virtual void X() { Console.WriteLine("x"); }
}
class B : A
{
override void X() { Console.WriteLine("y"); }
}
class Program
{
static void Main()
{
A b = new B();
// Call A.X somehow, not B.X...
}
(हाय बस रिकार्ड के लिए, किसी को 'मूर्ख-ट्रिक का टैग हटा दिया है कि मैं जोड़ा, और फिर किसी को: ऐसा करने के लिए, व्युत्पन्न वर्ग में विधि घोषित किया जाना चाहिए
new
के रूप में अन्यथा यह इंगित करने वाली टिप्पणी को हटा दिया गया है, ऐसा लगता है कि मैं वास्तव में चाहता हूं/ऐसा करने की ज़रूरत है। ऐसे लोगों के बारे में अधिसूचित होने के लिए उपयोगी होगा जो लोग SO पर करना चाहते हैं। – mackenirअंदर बी से कॉलिंग एएक्स() एकमात्र ऐसी स्थिति है जिसे मैं देख सकता हूं कि आपको बार-बार इसे कॉल करने की आवश्यकता है। मान लें कि आपके पास बेस क्लास सदस्यों के साथ प्रतिलिपि विधि थी, फिर नए सदस्यों के लिए कॉपी कार्यक्षमता जोड़ने और बेस.copy() को कॉल करने के लिए इसे ओवरराइड करें ताकि सभी कॉपी हो जाएं। – steviesama
दिलचस्प, मैंने सोचा होगा कि इसे प्रतिबिंब के माध्यम से पूरा किया जा सकता है? – mhand