codeplex में एएसपी.नेट एमवीसी स्रोत कोड ब्राउज़ करते समय, मुझे लगता है कि क्लास स्पष्ट रूप से कार्यान्वित इंटरफ़ेस को कक्षा में रखना आम है। स्पष्ट रूप से कार्यान्वित विधि/संपत्ति तब एक ही नाम के साथ एक और "संरक्षित आभासी" विधि/संपत्ति का आह्वान करती है।संरक्षित विधि को आमंत्रित करने के लिए स्पष्ट इंटरफ़ेस कार्यान्वयन का उपयोग क्यों करें?
उदाहरण के लिए,
public class MvcHandler : IHttpHandler, IRequiresSessionState
{
protected virtual bool IsReusable
{
get
{
return false;
}
}
bool IHttpHandler.IsReusable
{
get
{
return IsReusable;
}
}
}
मैं अब यकीन है कि प्रोग्रामिंग इस तरह के लाभ क्या कर रहा हूँ। मेरे लिए, मैं सिर्फ इंटरफ़ेस IHttpHandler को निहित रूप से लागू करना पसंद करता हूं।
मैं लेखक लगता है कि बस नहीं करना चाहती MvcHandler एक सार्वजनिक संपत्ति IsResuable है। संपत्ति IsReusable का उपयोग केवल तभी किया जा सकता है जब MvcHandler का उदाहरण IHttpHandler के रूप में माना जाता है। फिर भी, मुझे यकीन नहीं है कि लेखक इस तरह से क्यों है।
कोई भी इंटरफ़ेस कार्यान्वयन की इस शैली के बारे में अधिक लाभ जानता है?
यह मजाकिया है, एमवीसी स्रोत को आपके प्रारंभिक पोस्ट के ठीक उसी दिन 3 साल बाद पढ़ना, मेरे पास बिल्कुल वही सवाल था। – ScottS