2013-02-06 15 views
7

द्वारा सार्वजनिक MSDN के अनुसार:VB.NET वर्ग के सदस्यों डिफ़ॉल्ट

सार्वजनिक पहुँच एक प्रोग्रामिंग तत्व जब आप इसे तक पहुँच सीमित करने की जरूरत नहीं है के लिए सामान्य स्तर पर है। ध्यान दें कि तत्व का पहुंच स्तर एक इंटरफ़ेस, मॉड्यूल, कक्षा, या संरचना में सार्वजनिक रूप से डिफ़ॉल्ट रूप से घोषित किया गया है यदि आप इसे अन्यथा घोषित नहीं करते हैं।

तो, अगर मैं एक पहुँच संशोधक निर्दिष्ट किए बिना VB.NET में एक वर्ग प्रणाली की घोषणा, तो यह सार्वजनिक डिफ़ॉल्ट रूप से है:

Sub DoSomething() 

End Sub 

यह पागल है! मैं सदस्यों को डिफ़ॉल्ट रूप से निजी होना चाहता हूं, और केवल उन लोगों को जिन्हें विशेष रूप से कक्षा के बाहर दिखाई देने के लिए सार्वजनिक रूप से चिह्नित किया जाता है। सी # की तरह ... मैं इस व्यवहार को कैसे संशोधित करूं?

+6

क्यों लिख रहा है 'निजी' इतना भारी? –

+13

व्यक्तिगत रूप से मुझे लगता है कि अंतर्निहित पहुंच संशोधक पूरी तरह से एक बुरा विचार है। यदि आप हमेशा स्पष्ट रूप से एक्सेस संशोधक शामिल करते हैं तो कोड अन्य पाठकों के लिए अधिक स्पष्ट होगा। –

+0

@MitchWheat - वांछित प्रोग्रामिंग दर्शन: भाषा डिफ़ॉल्ट "रूढ़िवादी" होना चाहिए; सामान का पर्दाफाश करने के लिए एक प्रकार के लिए अच्छा नहीं है जिसका खुलासा नहीं किया जाना चाहिए। कुछ करने के लिए एक प्रोग्रामर की आवश्यकता है, कि उन्हें करने की आवश्यकता नहीं है, एक उप-इष्टतम समाधान है। यही हमारे पास कंप्यूटर है: लोगों के लिए इसे आसान बनाना। अनुमोदित, कोई इसे आईडीई स्तर पर हल कर सकता है: आईडीई स्वचालित रूप से "निजी" जोड़ता है, जब तक एक संशोधक निर्दिष्ट नहीं किया जाता है। – ToolmakerSteve

उत्तर

10

यह पागल है! मैं सदस्यों को डिफ़ॉल्ट रूप से निजी होना चाहता हूं

जैसा कि फ्रेडरिक ने पहले ही टिप्पणी की है, आपको हमेशा स्पष्ट पहुंच संशोधक प्रदान करना चाहिए।

यदि आप हमेशा स्पष्ट रूप से एक्सेस संशोधक शामिल करते हैं तो कोड अन्य पाठकों के लिए अधिक स्पष्ट होगा।

मुझे लगता है कि यह नीचे की संगतता या डेवलपर्स के कारण है जो एक्सेस मॉडिफायर से परिचित नहीं हैं।

लेकिन आप सही हैं, क्योंकि सी # में मैं डिफ़ॉल्ट रूप से जितना संभव हो उतना निजी बनाने का सुझाव दूंगा। आवश्यकता होने पर आप इसे और अधिक सार्वजनिक बना सकते हैं।

Declaration Contexts and Default Access Levels (VB.NET)

किसी भी विचार कैसे इस व्यवहार को संशोधित करने?

मुझे नहीं लगता है कि यह दृश्य स्टूडियो में कहीं डिफ़ॉल्ट पहुँच संशोधक निर्दिष्ट करने के लिए संभव है है। आप एक टेम्पलेट स्तरीय जो यहाँ का सुझाव दिया है बनाने के लिए कोशिश कर सकते (परीक्षण नहीं):

Visual C# 2010 Express: Specify default access modifier for new classes?

संबंधित मुद्दे