C# - Explicit Interfaces with inheritance? -
आउटपुट:
B-> नमस्कार! स्पष्ट से
यह नहीं होना चाहिए:?
ए-> हैलो! स्पष्ट से
क्यों स्पष्ट नहीं (आईहेलो) एक कॉल IHello.Hello () कक्षा ए से?
इंटरफ़ेस IHello {शून्य हेलो (); } वर्ग ए: आईहेलो {सार्वजनिक वर्चुअल शून्य हैलो () {Console.WriteLine ("ए->" नमस्ते! "); } शून्य IHello.Hello () {Console.WriteLine ("A-> स्पष्ट से हैलो!"); }} वर्ग बी: ए, आईहेलो {सार्वजनिक ओवरराइड शून्य हेलो () {कंसोल। वीडलाइन ("बी->"!!);; } शून्य IHello.Hello () {Console.WriteLine ("बी-> स्पष्ट से हैलो!"); }} वर्ग कार्यक्रम {स्थिर शून्य मुख्य (स्ट्रिंग [] एआरजी) {ए एक = नया बी (); ((IHello) क) .Hello (); }}
नहीं, इसे नहीं करना चाहिए।
कॉल करने के लिए नमस्कार
टिप्पणी के बराबर है - एक IHello
प्राप्त करने का मार्ग कोई बात नहीं है (जब तक कि उसे निष्पादन-समय की जाँच या रूपांतरण की आवश्यकता नहीं होती); संकलित समय प्रकार बस IHello
या तो तरीका है, और इंटरफ़ेस मैपिंग वही है जो आपको वहां मिलता है।
जब एक अंतरफलक स्पष्ट रूप से प्रकार पदानुक्रम में एक से अधिक बार कार्यान्वित किया जाता है , सबसे व्युत्पन्न प्रकार में कार्यान्वयन उपयोग किया जाता है। (इंटरफ़ेस के माध्यम से बुलाया जाता है।)
सी # 3.0 के खंड 13.4.4 से विशिष्टता:
एक वर्ग या स्ट्रेट सी के लिए इंटरफेस मैपिंग प्रत्येक सदस्य के लिए कार्यान्वयन को पता लगाता है सी के आधार वर्ग सूची में निर्दिष्ट प्रत्येक इंटरफ़ेस का। एक विशेष इंटरफेस सदस्य आईएम के कार्यान्वयन, जहां मैं इंटरफ़ेस है जिसमें सदस्य एम घोषित किया गया है, प्रत्येक वर्ग या स्ट्रेट एस की जांच करके निर्धारित होता है, सी से शुरू होता है और इसके लिए दोहराता है जब तक एक मैच स्थित नहीं होता है, तब तक सी का प्रत्येक क्रमिक आधार वर्ग:
- यदि एस में एक स्पष्ट इंटरफ़ेस सदस्य कार्यान्वयन है जो I और M से मेल खाता है, का घोषण करता है, तो यह सदस्य IM का कार्यान्वयन है
- अन्यथा, यदि एस में एक गैर-स्थिर सार्वजनिक सदस्य की घोषणा है जो एम से मेल खाता है, तो यह सदस्य आईएम का कार्यान्वयन है यदि एक से अधिक सदस्य मेल खाता है, तो यह अनिर्दिष्ट है कि कौन सा सदस्य IM का कार्यान्वयन है यह स्थिति केवल तभी हो सकता है यदि S एक निर्माण किया गया ty है पे जहां दो सदस्यों को सामान्य प्रकार में घोषित किया गया है, लेकिन विभिन्न प्रकार के हस्ताक्षर अलग-अलग हस्ताक्षर हैं।
Comments
Post a Comment