मैं लॉग 4नेट के लिए कुछ कोड की समीक्षा कर रहा था और मैं इस पर आया।सी # निजी, स्थैतिक, और केवल
private static readonly ILog logger = LogManager.GetLogger(typeof(AdminClient));
मुझे आश्चर्य है कि आपको निजी स्थैतिक पढ़ने की आवश्यकता क्यों होगी।
मेरी समझ से निजी का मतलब यह होगा कि जब तक कोई एक्सेसर विधि न हो या संपत्ति प्राप्त न हो तो चर के बाहर चर का उपयोग नहीं किया जा सकता है।
स्थिर का अर्थ यह होगा कि चर केवल इस फ़ाइल में ही स्कॉप्ड किया गया है।
केवल पढ़ने का मतलब यह होगा कि आप केवल मूल्य से पढ़ सकते हैं और इसे असाइन नहीं कर सकते हैं।
तो, मैं सोच रहा हूं कि वह व्यक्ति जिसने यह कोड लिखा था। इसे निजी घोषित किया क्योंकि वे नहीं चाहते हैं कि यह कक्षा और स्थिर के बाहर उपयोग किया जाए ताकि वह फ़ाइल के बाहर उपयोग न करें। हालांकि, अगर कोई संपत्ति प्राप्त हो जाती है तो इस फॉर्म को रोकने से रोकेंगी।
मुझे लगता है कि मैं केवल पढ़ने के लिए समझ सकता हूं और मान केवल पढ़ने और सेट नहीं किया जाना है।
किसी भी सलाह के लिए बहुत धन्यवाद,
इस विशिष्ट पैटर्न पर एक तरफ एक दिलचस्प: मैं एक बार इस 'संरक्षित घोषित स्थैतिक रीडोनली 'और जिसने मुझे "[सीए 2104] (https://msdn.microsoft.com/en-us/library/ms182302.aspx) अर्जित किया: वीएस कोड विश्लेषण से चेतावनी" केवल म्यूटेबल संदर्भ प्रकारों को पढ़ने की घोषणा न करें। जैसा कि उल्लेख किया गया है [http://stackoverflow.com/a/15745885/268066), "ए 'संरक्षित रीडोनली' फ़ील्ड वास्तव में स्पष्ट नहीं है। 'संरक्षित' के रूप में, आप उम्मीद कर सकते हैं कि व्युत्पन्न कक्षा क्षेत्र शुरू करें।" घोषणा को 'निजी स्थैतिक रीडोनली' में बदलना यह तय किया गया है। – CrazyPyro