मैंने इस विषय के बारे में कुछ चर्चाएं पढ़ी हैं, और कुछ ऐसा है जो मुझे समझ में नहीं आता है।संपत्ति बनाम फंक्शन (विशेष रूप से .NET)
सबसे आम उत्तर यह प्रतीत होता है: कैश किए गए डेटा को वापस करने के लिए केवल पढ़ने के लिए प्रॉपर्टी का उपयोग करें, गैर-कैश किए गए डेटा को वापस करने के लिए फ़ंक्शन का उपयोग करें। केवल एक लिखित संपत्ति का उपयोग न करें, क्योंकि "यह समझ में नहीं आता है"।
इसके लिए कोई प्रदर्शन कारण नहीं है। आईएल में, माइप्रोपर्टी get_MyProperty
और set_MyProperty
विधियों के रूप में मौजूद है। एकमात्र कारण स्पष्ट रूप से है कि उपर्युक्त उत्तर माना जाना चाहिए।
ठीक है, तो रीडऑनली प्रॉपर्टी के साथ क्यों परेशान है? क्यों न सिर्फ निजी के बजाय परिवर्तनीय सार्वजनिक बनाते हैं? फिर गुण से परेशान क्यों हैं? कैश डेटा -> सार्वजनिक चर, गैर-कैश डेटा -> फ़ंक्शन, डेटा लिखना -> उप
चलिए सभी उपरोक्त भूल जाते हैं, और गुणों को एक आसान सुविधा के रूप में उपयोग करते हैं? डेटा प्राप्त करने और सेट करने के लिए एक 'आइटम'। यह जानने के लिए सामान्य ज्ञान का उपयोग करें कि कोई गेट कैश डेटा वापस नहीं करेगा (संभवतः देरी के परिणामस्वरूप)।
-Edit- मुझे लगता है कि लोग कम या ज्यादा सहमत हैं कि गुण सर्वोत्तम विकल्प हैं। मुझे समझ में नहीं आया कि मुझे इतनी सारी चर्चा क्यों मिलीं जहां लोग गुणों के खिलाफ वकालत कर रहे थे।
आपका प्रश्न वास्तव में क्या है? आपका अंतिम अनुच्छेद या तो आपके प्रश्न का विरोध करता है या अपना उत्तर प्रदान करता है। –
मेरा अंतिम अनुच्छेद मेरी राय प्रदान कर रहा है। मैं समझौते या असहमति की तलाश में हूं (प्रदान किए गए कारणों से)। – Stijn
http://stackoverflow.com/questions/1019571/why-do-we-use-net-properties-instead-of-plain-old-get-set-functions – Jimmy