2013-03-18 5 views
8

C++ में यह गोपनीयता के आधार पर एक के सदस्यों की "ब्लॉक" बनाने के लिए संभव है:सी ++ में सी # में "निजी" या "सार्वजनिक" ब्लॉक बनाना संभव है?

private : 
    int var1; 
    char var2; 
    ... 

public : 
    int var3; 
    char var4; 
    ... 

मैं सी # में एक ही के उदाहरण की कोशिश की है, लेकिन एक नहीं मिल सका। मैंने विजुअल स्टूडियो में ऐसे ब्लॉक को लिखने की कोशिश की, लेकिन मुझे एक त्रुटि मिली।

क्या कोई समान वाक्यविन्यास है जो सी # में मान्य है?

+1

सं प्रत्येक सदस्य एक पहुँच संशोधक के साथ उपसर्ग किया जाना है, या यह डिफ़ॉल्ट करने के लिए रिसॉर्ट। – Hut8

+1

मुझे लगता है कि संक्षिप्त उत्तर है: संख्या –

+0

वर्तमान में, उत्तर नहीं है। – nsconnector

उत्तर

7

संक्षिप्त उत्तर नहीं है, ऐसा नहीं है। आपको हमेशा अपने क्षेत्र/विधि के सामने पहुंच विनिर्देश लिखना चाहिए।

public int var1; 
public char var2; 

ध्यान दें कि private डिफ़ॉल्ट विनिर्देशक है। यह डिजाइन का सवाल है, लेकिन मैं हमेशा संशोधक को स्पष्ट रूप से नामित करता हूं। (और यहां तक ​​कि अगर यह लगातार इंडेंटेशन के लिए है!)

msdn पर Accessibility Levels (C#) पर और पढ़ें।

3

नहीं, आपको प्रत्येक सदस्य (संपत्ति, फ़ील्ड या विधि) से पहले एक्सेस संशोधक लिखना चाहिए।

2

संक्षिप्त उत्तर: नहीं। आपको पहुंच विनिर्देशकों में से एक के साथ प्रत्येक लाइन को उपसर्ग करने की आवश्यकता है। यदि आप नहीं करते हैं, तो एक डिफ़ॉल्ट (सदस्यों के लिए निजी, प्रकार के लिए आंतरिक) है।

0

नहीं, यह संभव नहीं है, लेकिन अगर आप तार्किक समूहों में समूह वर्ग के सदस्यों के लिए चाहते हैं, तो आप regions उपयोग कर सकते हैं:

#region Private properties 

private int var1; 

#endregion 
+0

कृपया क्षेत्रों का उपयोग न करें, ऐसे कोड परिणामों को निरंतर विस्तार/ढहने वाले क्षेत्रों में हर समय पढ़ें ...समान पहुंच स्तर वाले समूह को ठीक करना –

+0

उह होना चाहिए, मुझे खुशी है कि मैं अकेला नहीं हूं जो क्षेत्रों से नफरत करता है .. –

+0

कुछ लोग क्षेत्रों से प्यार करते हैं और मुझे कोड में अन्य डेवलपर्स ने बहुत कुछ लिखा है। मैं व्यक्तिगत रूप से उन्हें पसंद नहीं करता हूं। –

0

यह नहीं संभव है। यहाँ कुछ अन्य संकेत हालांकि:

आप पढ़ने और लिखने के लिए अलग एक्सेस प्राप्त करने के लिए चाहते हैं, तो इस कोशिश:

public int Var1 { get; private set; } 

उद्देश्य सिर्फ अपने कोड को छोटा है, तो यह कम से कम कुछ पात्रों को बचाता है।

private int _var1, _var2, _var3; 
private char _char1, _char2; 
0

वर्तमान में, जवाब नहीं है।

public string name; 
public string address; 

की तरह जोड़ने पहुँच संशोधक के इरादे कोड अधिक पठनीय बनाने के लिए किया गया था।

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