2009-05-27 9 views
7

वाईन मैं एक नई कक्षा फ़ाइल बनाता हूं, विजुअल स्टूडियो इसे डिफ़ॉल्ट रूप से सार्वजनिक नहीं बनाता है। क्या मैं इसे बदल सकता हूं?विजुअल स्टूडियो में डिफ़ॉल्ट रूप से मेरी कक्षाएं निजी क्यों हैं?

+0

यह http://stackoverflow.com/questions/39903/vs-net-defaults-to-private-class का सटीक डुप्लिकेट प्रतीत होता है और उस प्रश्न का एक स्वीकार्य उत्तर भी है। –

उत्तर

-1

मैंने इस बारे में शिकायतें सुनी हैं, मुझे विश्वास नहीं है कि यह एक विकल्प बदला जा सकता है।

-1

क्या आपका मतलब है कि कक्षा अन्य कक्षाओं के भीतर ही उपलब्ध नहीं है? या क्या आपका मतलब है कि फ़ाइल की सभी सामग्री निजी पहुंच के लिए डिफ़ॉल्ट है?

यदि आप कक्षा को अन्य कक्षाओं में दिखाना चाहते हैं, तो आपको बस यह सुनिश्चित करना होगा कि नाम वर्ग अन्य वर्ग में दिखाई दे (सी # में "उपयोग" कीवर्ड के साथ, या बस उन्हें एक ही नामस्थान में रखें) ।

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

1

डिफ़ॉल्ट कोड टेम्पलेट्स के साथ अन्य समस्याएं हैं - उदाहरण के लिए, वे स्टाइलकॉप के साथ बॉक्स के बाहर अनुपालन नहीं कर रहे हैं, क्योंकि "उपयोग" लाइनें नेमस्पेस घोषणा के बाहर हैं।

आप टेम्पलेट से अपनी कक्षा फ़ाइलों को बनाने के लिए रीशेपर का उपयोग कर सकते हैं, जिससे आप टेम्पलेट में इच्छित कोड डाल सकते हैं। मैं यही करता हूं :)

11

डिफॉल्ट रूप से एक एक्सेस विनिर्देशक के बिना कक्षा आंतरिक है और सदस्य निजी पर डिफ़ॉल्ट होता है। यह दृश्यता को जितना संभव हो सके प्रतिबंधित करता है और इस तरह encapsulation बढ़ता है।

encapsulation के पूरे विचार को तोड़ने के बारे में सोचने के बिना एक नया वर्ग सार्वजनिक बनाना।

कि वी.एस. एक नया वर्ग पैदा करने के लिए उपयोग करता वर्ग टेम्पलेट इस ज़िप फ़ाइल में पाया जा सकता है (CSharp के मामले में):

C: \ Program Files \ Microsoft Visual Studio 8 \ Common7 \ IDE \ ItemTemplates \ CSharp \ 1033 \ Class.zip या C: \ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ कोड \ 1033 जब वी.एस. ओर्कास

ज़िप फ़ाइल खोलें का उपयोग कर, जनता कीवर्ड जोड़ने, को बचाने के यह और तुम कर चुके हो हर बार जब आप कक्षा जोड़ते हैं तो यह सार्वजनिक होगा। उम्मीद है की यह मदद करेगा।

Source

+0

दोह! तुम बहुत जल्दी हो! –

+0

सहमत, वह त्वरित था !!!! अच्छा उत्तर। – Skittles

+0

........-) धन्यवाद – Shoban

-1

मुझे नहीं लगता कि यह है कि आप वी.एस. में एक विकल्प तो यह है कि बनाया सभी वर्गों डिफ़ॉल्ट रूप से सार्वजनिक कर रहे हैं बदल सकते हैं (लेकिन मैं इस पर गौर करेंगे।)

मुझे लगता है कि जब तक कि लगता होगा आपके पास अपनी सभी कक्षाओं को सार्वजनिक घोषित करने की एक बहुत ही विशिष्ट आवश्यकता है (और मैं किसी के बारे में नहीं सोच सकता) कि आपको डिफ़ॉल्ट रूप से छोड़ना चाहिए। यह आपको निर्णय लेने की अनुमति देता है कि कौन से वर्ग सार्वजनिक हैं और जो आंतरिक रहना चाहिए। मेरी राय में, एक अच्छा डिजाइन विकल्प यह निर्धारित करेगा कि कक्षाओं को डिफ़ॉल्ट रूप से 'आंतरिक' घोषित किया जाता है।

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