2010-12-13 16 views
8

निजी कीवर्ड का उपयोग क्या है यदि डिफ़ॉल्ट रूप से सबकुछ निजी है?निजी कीवर्ड बनाम कोई निजी कीवर्ड

public class A { 
    object someObject; 
    private object someOtherObject; 
} 

क्या दोनों उपरोक्त निजी नहीं होंगे? यदि वे दोनों निजी हैं तो कीवर्ड की आवश्यकता क्यों है?

+5

डिफ़ॉल्ट के लिए * सब कुछ * निजी नहीं है में भी उपयोगी होता है: वर्ग/struct सदस्यों के लिए डिफ़ॉल्ट निजी है; शीर्ष-स्तरीय प्रकारों के लिए डिफ़ॉल्ट आंतरिक है। http://msdn.microsoft.com/en-us/library/ba0a1yw2.aspx – LukeH

+0

विस्मयकारी लिंक, ल्यूकएच – MyNameIsJob

+0

डुप्लिकेट (भले ही यह प्रश्न पहले था): http://stackoverflow.com/questions/8479214/any-reason -to-write-the-private-keyword-in-c – Jon

उत्तर

20

कीवर्ड का स्पष्ट उपयोग कोड को स्पष्ट करता है, जो भी डिफ़ॉल्ट है।

अनुमान लगाने से बचें या जहां संभव हो, कोड रीडर/रखरखाव के हिस्से पर तथ्यों की जांच की आवश्यकता से बचें।

this prior question के माध्यम से दृश्यता जानकारी का संदर्भ है।

1

कोड सफाई ईश्वरीय-नेस के बगल में है। इसे पढ़ने में आसान बनाता है।

3

डिफ़ॉल्ट समय-समय पर बदल गया है। यह वीबी में होता था कि सब कुछ डिफ़ॉल्ट रूप से सार्वजनिक था। अब यह निजी है।

अन्य प्रोग्रामिंग भाषाओं में, डिफ़ॉल्ट अलग है।

तो, इसे लिखना कोड के पाठक की सहायता करता है।

+2

सी # जैसी स्थापित भाषा में डिफ़ॉल्ट बदलना एक बड़े पैमाने पर तोड़ने वाला परिवर्तन होगा। इस घटना की संभावना बहुत छोटी है, मैं कल्पना करूंगा। – LukeH

+1

तो उन्होंने वीबी 6 के दिनों में सोचा। फिर वीबीएनईटी आया ... – fingerprint211b

+3

@ फिंगरप्रिंट 211 बी: यह सच है, लेकिन कई लोग संस्करण संख्या की वृद्धि के बजाय वीबी 6 और वीबी.नेट को अलग-अलग बोलियां मानेंगे। – LukeH

9

Steve Townsend said रूप में, यह कोड को स्पष्ट करता है, लेकिन यह मिश्रित उपयोग के साथ गुण, उदा .:

public int SomeProperty { get; private set; } 
संबंधित मुद्दे