क्या अलग-अलग DLL में आंशिक वर्ग के लिए दो भाग (समान नामस्थान, समान श्रेणी नाम) होना संभव है?
क्या अलग-अलग DLL में आंशिक वर्ग के लिए दो भाग (समान नामस्थान, समान श्रेणी नाम) होना संभव है?
जवाबों:
से MSDN -Partial वर्ग और तरीके :
सभी आंशिक प्रकार की परिभाषाएं एक ही प्रकार के भागों के समान विधानसभा और समान मॉड्यूल (.exe या .dll फ़ाइल) में परिभाषित की जानी चाहिए। आंशिक परिभाषाएँ कई मॉड्यूल नहीं फैला सकती हैं।
सं। आंशिक कक्षाएं विशुद्ध रूप से भाषा की विशेषता हैं। जब कोई असेंबली संकलित की जाती है, तो टाइप बनाने के लिए फ़ाइलों को संयोजित किया जाता है। फाइलों को अलग-अलग विधानसभाओं में फैलाना संभव नहीं है।
आप जो करना चाहते हैं, उसके आधार पर, आप अपनी ज़रूरतों को पूरा करने के लिए विस्तार विधियों का उपयोग करने में सक्षम हो सकते हैं ।
नहीं, यह संभव नहीं है। जब विधानसभा को संकलित किया जाता है तो कक्षा समाप्त करने की आवश्यकता होती है।
हालांकि अन्य उत्तर अप्रिय "नहीं" प्रदान करते हैं कि इस पृष्ठ पर उतरने वाला कोई भी व्यक्ति देखना या सुनना नहीं चाहता था, मैं एक और विचार से मारा गया था जिसका यहां अभी तक उल्लेख नहीं किया गया है। यदि असेंबली में आंशिक वर्गों की अनुमति थी, तो किसी को मौजूदा प्रकार के निजी सदस्यों तक पहुंच प्राप्त होगी जो उसके द्वारा नहीं लिखे गए थे, इस प्रकार उसे उन तरीकों से हेरफेर करने की अनुमति देता है जो मूल लेखक द्वारा अभिप्रेत नहीं थे, इस प्रकार सभी विरासत वर्गों की कार्यक्षमता को खतरे में डालते हैं। भी।
इतना ही नहीं, अन्य विधानसभाओं (और उनके बच्चों) में उन वर्गों को इसे काम करने के लिए फिर से तैयार करने की आवश्यकता होगी। इस प्रकार विभिन्न विधानसभाओं पर एक वर्ग को विभाजित करने की अनुमति देना तार्किक रूप से संभव नहीं है।
जब आप किसी विधि को किसी भिन्न dll में वर्ग में जोड़ना चाहते हैं, तो आप एक्सटेंशन विधियों का उपयोग कर सकते हैं। इस विधि का एक दोष यह है कि आप स्थैतिक विधियों को जोड़ नहीं सकते।
सवाल यह है कि आप दूसरी विधानसभा में आंशिक वर्ग क्यों बनाना चाहेंगे? आप असेंबलियों में अमूर्त वर्गों और इंटरफेस को परिभाषित कर सकते हैं, शायद आपको उस पर ध्यान देने की आवश्यकता है।
आप शायद सिर्फ 3 लाइब्रेरी में कक्षा के चारों ओर अपने पुस्तकालय के भीतर एक आवरण कक्षा बनाना चाहते हैं। फिर रैपर क्लास के लिए जो भी कार्यक्षमता है उसे जोड़ें।