.NET 4 से आगे, Lazy<T>
वस्तुओं को आलसी शुरू करने के लिए उपयोग किया जा सकता है। सहजता से, आलसी प्रारंभिककरण को सार्वजनिक संपत्ति के गेटर में कॉलर को समान कार्यक्षमता प्रदान करने के लिए भी किया जा सकता है। मुझे आश्चर्य है कि Lazy<T>
उत्तरार्द्ध पर किसी भी अंतर्निहित लाभ प्रदान करता है और इस प्रकार इसे प्राथमिकता दी जानी चाहिए?आलसी 0-को गेटटर में आलसी शुरुआत के लिए प्राथमिकता दी जानी चाहिए?
व्यक्तिगत रूप से, मुझे लगता है कि Lazy<>
कोड पठनीयता को जल्दी से कम कर सकता है, लेकिन शायद मैंने इसे दुरुपयोग देखा है। प्लस तरफ, यह थ्रेड सुरक्षा सुनिश्चित करता है, लेकिन कई .NET सिंक्रनाइज़ेशन का निर्माण होता है - शायद मैं गलत हूं - इसे गेटटर के अंदर प्राप्त करना काफी आसान बनाता है।
सर्वोत्तम दृष्टिकोण चुनते समय जागरूक होने के कुछ विचार क्या हैं?
आलसी 'के बिना प्राप्त आलसी प्रारंभिकरण का एक उदाहरण दें। ऐसा लगता है कि यह इतना आसान नहीं है। –
[नकली संपत्ति बनाम आलसी] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/5134786/cached-property-vs-lazyt) –
Default
डिफ़ॉल्ट: उसको याद किया, धन्यवाद। इसे डुप्लिकेट के रूप में चिह्नित किया जा सकता है। @ बेन वोगेट: पैट्रिक होफमैन ने अपने जवाब में क्या वर्णन किया है। इसके अलावा, मैं कृपया लोगों से यह पूछने के लिए कहता हूं कि इस सवाल को कैसे सुधार किया जा सकता है (यह कहना है कि मैं इस साइट को कितना आक्रामक बना रहा हूं) से निराश हूं। – w128