आप विधानसभा एक में एक संपत्ति के साथ एक सार्वजनिक इंटरफेस को परिभाषित करते हैं, तब विधानसभा बी में इस इंटरफेस इस्तेमाल कर सकते हैं
अब, आप संपत्ति के कार्यान्वयन को बदल सकते हैं (शायद किसी डेटाबेस से मूल्य प्राप्त करने में कठिनाई के बजाय भंडारण यह एक क्षेत्र में)। फिर आप असेंबली ए को पुनः संकलित कर सकते हैं, और पुराने को प्रतिस्थापित कर सकते हैं। असेंबली बी ठीक रहेगा क्योंकि इंटरफ़ेस नहीं बदला होगा।
हालांकि, अगर आप प्रारंभ में सार्वजनिक क्षेत्र के साथ शुरू करना चाहते थे, और फैसला किया कि यह उपयुक्त नहीं था और कार्यान्वयन को बदलना चाहता था और ऐसा करने के लिए आपको इसे किसी संपत्ति में बदलने की आवश्यकता थी, तो इसका मतलब यह होगा कि आप ' डी को असेंबली ए के सार्वजनिक इंटरफ़ेस को बदलना होगा। उस इंटरफ़ेस के किसी भी ग्राहक (असेंबली बी सहित) को भी पुनः संकलित किया जाना चाहिए और इस नए इंटरफ़ेस के साथ काम करने में सक्षम होने के लिए प्रतिस्थापित किया जाना चाहिए।
तो, आप शुरू में संपत्ति के साथ शुरू करने से बेहतर हैं। यह संपत्ति के कार्यान्वयन को समाहित करता है, जिससे आपको भविष्य में इसे बदलने के लिए स्वतंत्र किया जा सकता है, चिंता करने के बिना कि कौन से ग्राहक (असेंबली बी समेत) पहले से ही असेंबली ए का उपयोग कर दुनिया में बाहर हैं। क्योंकि, यदि कोई ग्राहक पहले से ही दुनिया में बाहर है असेंबली ए का उपयोग करना, इंटरफेस बदलना सभी ग्राहकों को तोड़ देगा। अगर वे आपकी कंपनी, या किसी अन्य कंपनी में किसी अन्य टीम द्वारा उपयोग किए जाते हैं, तो यदि आप अपने इंटरफ़ेस को बदलकर अपनी असेंबली तोड़ते हैं तो वे खुश नहीं होंगे!
स्रोत
2008-10-03 18:26:02
थोड़ा सा सुधार (हालांकि मैं सामान्य जोर से सहमत!) - स्वचालित रूप से लागू किया गुण सी # 3.0 का हिस्सा है, नहीं .NET 3.0 है। भाषा और ढांचे के बीच के अंतर के बारे में स्पष्ट होना उचित है। –
हाँ। एक वीबीनेट उपयोगकर्ता के रूप में मुझे दुख है कि हमें इस तरह की उपहार नहीं मिलती है। –
मैं जानता हूँ कि यह एक पुरानी धागा है, लेकिन मैं उन है कि खोज इंजन से यहाँ आया (मेरे जैसे) के लिए इस जोड़ना चाहते हैं: : http: .NET 4.0 के रूप में, VB.NET भी स्वत: लागू किया गुण का समर्थन करता है // msdn.microsoft.com/en-us/library/dd293589.aspx – Nullius