internal class
गुंजाइश public MyClass()
निर्माता गुंजाइश, ओवरराइड करता है निर्माता internal
बना रही है।
कन्स्ट्रक्टर पर public
का उपयोग कर कक्षा को public
पर अपडेट करना आसान बनाता है, लेकिन इरादे को भ्रमित करता है। मैं यह नहीं करता
संपादित करें 3: मुझे आपके प्रश्न का हिस्सा याद आया। यह अभी भी ठीक है कि अगर आपकी कक्षा घोंसला है। घोंसले में कोई फर्क नहीं पड़ता है, भले ही यह किसी सार्वजनिक वर्ग में एक निजी वर्ग में घिरा हुआ हो ... (C# language specification - 3.5.2 Accessibility domains देखें)।
संपादित करें: और, अगर मैं याद करते हैं, अगर ctor internal
है, यह नहीं एक सामान्य प्रकार जहां एक बाधा where T : new()
की आवश्यकता होती है वहाँ के रूप में इस्तेमाल किया जा सकता है, यह एक public
निर्माता की आवश्यकता होगी (। रेफरी C# language specification (version 4.0) - 4.4.3 Bound and unbound types) ।
संपादित करें 2: कोड का नमूना ऊपर
class Program
{
internal class InternalClass {
internal InternalClass() { }
}
internal class InternalClassPublicCtor {
public InternalClassPublicCtor() { }
}
internal class GenericClass<T>
where T : new() {}
static void Main(string[] args) {
GenericClass<InternalClass> doesNotCompile = new GenericClass<InternalClass>();
GenericClass<InternalClassPublicCtor> doesCompile = new GenericClass<InternalClassPublicCtor>();
}
}
स्रोत
2013-05-11 18:53:46
यदि आप एक आंतरिक कन्स्ट्रक्टर के साथ एक आंतरिक उपयोगकर्ता नियंत्रण बनाते हैं, तो विन फॉर्म डिजाइनर गलत व्यवहार करेगा। – DaveShaw
क्लास पर "मास्टर स्विच" के रूप में एक्सेस संशोधक के बारे में सोचें जो सभी वर्ग के सदस्यों की * अधिकतम * पहुंच को सेट करता है। –
@ChrisMcGrath। बड़े पैमाने पर मैं सहमत हूं, हालांकि यह प्रश्न कक्षाओं के घोंसले के बारे में भी पूछता है (और मैंने इसे अपने पहले पढ़ने पर याद किया, इसलिए मैंने इसे अपने उत्तर में एक संपादन में संबोधित किया है)। –