पर वीएसएनईटी डिफ़ॉल्ट डिफ़ॉल्ट दृश्य स्टूडियो सी # में निजी के रूप में नए वर्ग क्यों घोषित करता है? मैं लगभग हमेशा उन्हें सार्वजनिक रूप से बदलता हूं, क्या मैं पागल हूं?निजी वर्ग
उत्तर
डिफ़ॉल्ट रूप से निजी पहुंच सी # भाषा विनिर्देशकों के हिस्से पर एक उचित डिजाइन विकल्प की तरह प्रतीत होता है।
एक अच्छा सामान्य डिजाइन सिद्धांत निर्भरता को कम करने के लिए, जितना संभव हो सके सभी पहुंच स्तर को प्रतिबंधित करने के लिए है। यदि आप यथासंभव प्रतिबंधित के रूप में प्रारंभ करते हैं और किसी वर्ग या सदस्य को अधिक दृश्यमान बनाने के लिए डेवलपर को कुछ कार्रवाई करने के लिए गलत पहुंच स्तर के साथ समाप्त होने की संभावना कम होती है। यदि आपकी आवश्यकता से कुछ कम सार्वजनिक है, तो जब आप संकलन त्रुटि प्राप्त करते हैं तो यह तत्काल स्पष्ट होता है, लेकिन ऐसा कुछ भी दिखाना जितना आसान हो सकता है जो उससे अधिक दिखाई दे।
सी ++, जिस पर सी # व्युत्पन्न हुआ है, निर्दिष्ट है कि डिफ़ॉल्ट वर्ग पहुंच स्तर निजी है। सी # बेहतर या बदतर के लिए आगे बढ़ता है।
डिफ़ॉल्ट आंतरिक है, निजी नहीं है। http://msdn.microsoft.com/en-us/library/ms173121.aspx – sliderhouserules
नहीं, मुझे हमेशा कक्षा के सामने उस "सार्वजनिक" कीवर्ड को थप्पड़ मारना है, इसलिए आप अकेले नहीं हैं। मुझे लगता है कि टेम्पलेट डिजाइनरों ने सोचा था कि बहुत मूल बातें शुरू करना एक अच्छा विचार था। आप इन टेम्पलेट्स को अपने विजुअल स्टूडियो इंस्टॉल में संपादित कर सकते हैं, अगर यह वास्तव में आपको बहुत परेशान करता है, लेकिन मुझे अभी तक उस बिंदु तक नहीं मिला है।
करने के लिए "Program Files \ Microsoft Visual Studio 9.0 \ Common7 से अधिक जाएँ:
मुझे यकीन है कि ऐसा क्यों है कि करता है, लेकिन यहाँ क्या आप डिफ़ॉल्ट रूप से सार्वजनिक रूप वर्ग बनाने के लिए दृश्य स्टूडियो पाने के लिए आदेश में क्या है नहीं कर रहा हूँ \ आईडीई \ ItemTemplates \ CSharp \ कोड \ 1033 ", आप ज़िप फ़ाइल के अंदर Class.cs बुलाया फ़ाइल को खोलने के लिए एक फ़ाइल Class.zip कहा जाता है, मिल जाएगा, फ़ाइल की सामग्री इस तरह दिखता है:
using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ == 3.5)using System.Linq;
$endif$using System.Text;
namespace $rootnamespace$
{
class $safeitemrootname$
{
}
}
आपको बस कक्षा के नाम से पहले "सार्वजनिक" जोड़ना है। परिणाम इस तरह दिखना चाहिए:
using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ == 3.5)using System.Linq;
$endif$using System.Text;
namespace $rootnamespace$
{
public class $safeitemrootname$
{
}
}
एक आखिरी बात तुम क्या करने की जरूरत है फ्लश सभी टेम्पलेट्स दृश्य स्टूडियो का उपयोग कर रहा है, और उसे उन्हें फिर से लोड कर सकते हैं। इसके लिए आदेश है (इसमें थोड़ी देर लगती है):
devenv /installvstemplates
और यह डिफ़ॉल्ट रूप से कोई और निजी वर्ग नहीं है। बेशक आप आंतरिक या जो भी चाहें जोड़ सकते हैं।
वाह, मैं वास्तव में क्या देख रहा था! –
।
आप कुछ विधियों का खुलासा करना चाहते हैं, न कि आपकी पूरी कक्षा।
भले ही आप कक्षा के रूप में सार्वजनिक रूप से चिह्नित हों, फिर भी सदस्य डिफ़ॉल्ट रूप से निजी होते हैं। दूसरे शब्दों में, कक्षा एक ही नामस्थान के बाहर काफी बेकार है। मुझे लगता है कि इसे डिफ़ॉल्ट रूप से सार्वजनिक बनाना इसके बजाए बहुत दूर जा सकता है। कुछ 'आंतरिक' का उपयोग करने का प्रयास करें। इसे के लिए उद्देश्यों के लिए पर्याप्त पहुंच प्रदान करनी चाहिए।
- 1. एक्टिवेटर। निजी सीलबंद वर्ग
- 2. भीतरी निजी वर्ग
- 3. निजी आंतरिक वर्ग अप्रत्याशित अनाम वर्ग
- 4. निजी वर्ग (कक्षा विधि नहीं)?
- 5. वर्ग कोष्ठक के साथ निजी scoping (निजी [...]) स्काला
- 6. स्टेटिक सदस्य वर्ग - कक्षा निजी और वर्ग सदस्य पैकेज-निजी घोषित करें?
- 7. निजी निर्माता के साथ वर्ग की फैली
- 8. निजी सदस्यों जब एक वर्ग ExtJS
- 9. जावा प्रोग्रामिंग मुहावरे: निजी कार्यान्वयन वर्ग
- 10. अपरिवर्तनीय वर्ग/वस्तु, निजी निर्माता, कारखाने विधि
- 11. क्या यह एक निजी वर्ग संभव है?
- 12. पीएचपी __get और निजी वर्ग चर
- 13. निजी [यह] बनाम निजी
- 14. QObject, qRegisterMetaType का उप-वर्ग, और निजी प्रतिलिपि निर्माता
- 15. अज्ञात नामस्थान में निजी वर्ग कार्य बनाम कार्य
- 16. उद्देश्य-सी: विरासत वर्ग में निजी संपत्तियों का उपयोग
- 17. किसी अन्य वर्ग से निजी विधि तक पहुंच
- 18. सी # निजी वर्ग के सदस्य को क्रमबद्ध करें
- 19. परीक्षण वर्ग निजी क्षेत्र में EasyMock नकली इंजेक्षन कैसे करें
- 20. जावा अज्ञात वर्ग और पहुंच योग्य निजी चर
- 21. पीएचपी - निजी वर्ग चर त्रुटि है: अपरिभाषित चर
- 22. निजी सदस्य उसी वर्ग के अन्य उदाहरणों से सुलभ
- 23. Enum प्रथाओं - एक वर्ग/अलग से परिभाषित करें, सार्वजनिक/निजी
- 24. निजी वर्ग स्तर के चर विरासत में हैं?
- 25. निजी सदस्यों वाले वर्ग के उदाहरण को क्रमबद्ध कैसे करें?
- 26. उसी वर्ग के भीतर निजी फ़ंक्शन को कॉल करना python
- 27. निजी विरासत के साथ व्युत्पन्न वर्ग में मित्र समारोह
- 28. निजी निर्माता
- 29. साथी वर्ग एक निजी वर्ग के लिए: यह मान्य क्यों नहीं है?
- 30. निजी एपीआई
दरअसल, कक्षा, संरचना या इंटरफ़ेस के लिए डिफ़ॉल्ट पहुंच स्तर आंतरिक नहीं है, निजी नहीं है। 'आंतरिक उपयोग डिफ़ॉल्ट है यदि कोई एक्सेस संशोधक निर्दिष्ट नहीं है' और 'कक्षाओं और structs की तरह, आंतरिक पहुंच के लिए डिफ़ॉल्ट इंटरफेस' से: [एमएसडीएन] (http://msdn.microsoft.com/en-us/library/ms173121। एएसपीएक्स) – sliderhouserules