सी # कंपाइलर स्पष्ट रूप से सभी इंटरफेस को नोट करता है, और इसके मूल वर्ग लागू होते हैं। सीएलआई चश्मा कहते हैं कि यह necesary नहीं है। मैंने देखा है कि कुछ अन्य कंपाइलर्स इसे स्पष्ट रूप से उत्सर्जित नहीं करते हैं, और ऐसा लगता है कि यह ठीक काम करता है। क्या सी # ऐसा कोई अंतर या कारण है?सी # कंपाइलर स्पष्ट रूप से सभी इंटरफेस को एक प्रकार के उपकरण घोषित क्यों करता है?
तल पर सी # बी के लिए उत्पन्न करता है MSIL है जो:
.class private auto ansi beforefieldinit B
extends A
implements IAdvanced,
ISimple
यह क्योंकि एक यह लागू करता IAdvanced करता है, ISimple निर्दिष्ट करने की आवश्यकता नहीं होनी चाहिए। सी # कोड:
interface ISimple {
int Basic { get; }
int Zero { get; }
}
interface IAdvanced : ISimple {
string Major { get; }
}
class A : ISimple {
int ISimple.Basic {
get { return 1; }
}
int ISimple.Zero {
get{ return 0;}
}
}
class B : A, IAdvanced {
string IAdvanced.Major {
get { return "B"; }
}
}
आईआईआरसी, सबकुछ स्पष्ट रूप से विशिष्टता में परिभाषित किया गया है। तो यहां कोई अनुमान नहीं है। – leppie
मैं दरवाजा नंबर तीन के लिए जाना होगा! ;-) – peSHIr
हाँ, सीएलआई चश्मा के विभाजन द्वितीय ने यह स्पष्ट किया है कि इसकी आवश्यकता नहीं है। मैंने नहीं देखा कि क्या यह कहा गया है कि यह वास्तव में कुछ भी करता है। – MichaelGG