मुझे बस एहसास हुआ कि C # प्रॉपर्टी कंस्ट्रक्शन का उपयोग निजी एक्सेस संशोधक के साथ भी किया जा सकता है :
private string Password { get; set; }
हालांकि यह तकनीकी रूप से दिलचस्प है, मैं कल्पना नहीं कर सकता कि मैं इसका उपयोग कब करूंगा क्योंकि एक निजी क्षेत्र में भी कम समारोह शामिल है :
private string _password;
और मैं कल्पना नहीं कर सकते जब मैं कभी आंतरिक रूप से करने में सक्षम हो की आवश्यकता होगी मिल नहीं बल्कि सेट या सेट नहीं बल्कि पाने के लिए एक निजी क्षेत्र:
private string Password { get; }
या
private string Password { set; }
लेकिन शायद नेस्टेड / इनहेरिट की गई कक्षाओं के साथ एक उपयोग मामला है या शायद जहां एक गेट / सेट में संपत्ति के मूल्य को वापस देने के बजाय तर्क हो सकता है , हालांकि मैं गुणों को कड़ाई से सरल रखना चाहता हूं और स्पष्ट तरीके किसी भी तर्क को करने देता हूं, उदा GetEncodedPassword()
।
क्या कोई किसी कारण से C # में निजी संपत्तियों का उपयोग करता है या क्या यह तकनीकी रूप से संभव-अभी तक शायद ही कभी इस्तेमाल किया गया वास्तविक-कोड निर्माण में से एक है?
परिशिष्ट
अच्छे उत्तर, उनके माध्यम से पढ़कर मैंने निजी संपत्तियों के लिए इन उपयोगों को रद्द कर दिया:
- जब निजी क्षेत्रों को आलसी लोड करने की आवश्यकता होती है
- जब निजी क्षेत्रों को अतिरिक्त तर्क की आवश्यकता होती है या उनकी गणना की जाती है
- चूंकि निजी क्षेत्रों को डिबग करना मुश्किल हो सकता है
- "अपने आप को एक अनुबंध प्रस्तुत करने के लिए"
- आंतरिक रूप से परिवर्तित / सरलीकरण के हिस्से के रूप में एक उजागर संपत्ति को सरल बनाना
- रैपिंग ग्लोबल वैरिएबल का उपयोग आपकी कक्षा के अंदर किया जाएगा