हमें सी # में extern alias
कीवर्ड का उपयोग कब करना चाहिए?हमें सी # में बाहरी उपनाम कीवर्ड का उपयोग कब करना चाहिए?
उत्तर
असल में आपको केवल वास्तव में इसकी आवश्यकता होती है जब आप अलग-अलग असेंबली से एक ही पूर्णतः योग्य नाम (समान नामस्थान, समान प्रकार का नाम) के साथ दो प्रकार का उपयोग करना चाहते हैं। आप प्रत्येक असेंबली के लिए एक अलग उपनाम घोषित करते हैं, ताकि आप उन्हें उस उपनाम के माध्यम से संदर्भित कर सकें।
जरूरत नहीं कहने के लिए है, तो आप उस स्थिति में हो रही :)
एंसन होर्टन के साथ शुरू करने के लिए से बचने के लिए प्रयास करना चाहिए इसके बारे में एक good blog post है।
बस जोड़ने के लिए - बाहरी जोड़ने के बाद भी comsumer * .cs फ़ाइल के शीर्ष पर उपनाम घोषणा, डिफ़ॉल्ट रूप से कंपाइलर उस प्रकार की तलाश नहीं करता है जिसका उपयोग मैं कर रहा हूं (जो उस असेंबली में मौजूद है)। कॉम्पाइलर का डिफ़ॉल्ट व्यवहार हमेशा कक्षाओं और प्रकारों को खोजना है और 'ग्लोबल' उपनाम वाले असेंबली का संदर्भ दिया। मैं बाहरी उपनाम नाम से शुरू होने वाले पूर्णतः योग्य प्रकार के नाम का उपयोग कर समाप्त करता हूं मेरी बाहरी उपनाम घोषणा 'बाहरी उपनाम विजेट्स विक्रेता 1 थी;' और फिर भी मैं 'var wid = new widgetsVendor1.Widgets.Widget(); जैसे कोड लिख रहा था;' मैं बस नहीं कर सकता- 'vv wid = new widgets.Widget() ; ' – RBT
@ आरबीटी: नहीं, यह केवल * उपनाम * घोषित करता है। लेकिन फिर आप 'widgetsVendor1.Widgets का उपयोग कर सकते हैं;' और 'var wid = new widget(); 'लिखें। –
ओह। दिलचस्प! मुझे यह नहीं पता था। मैंने अपनी टिप्पणियों को सुबह में अपने अवलोकन के आधार पर पोस्ट किया था। जानकर खुशी हुई। मैं 'उपयोग' कीवर्ड का उपयोग कर बाहरी उपनाम के अंदर नामस्थान आयात करने में सक्षम हूं। धन्यवाद। – RBT
यह आपको संस्करण द्वारा खोए गए वास्तव में गहरे छेद से बाहर निकलने में मदद करने के लिए है। अपने कार्यक्रम के अपने पहले संस्करण इस वर्ग
using System;
namespace Acme.Financial.Banking {
[Serializable]
public class BankAccount {
public double Balance { get; set; }
//...
}
}
का उपयोग करता है कहो और अगर आप बैंक के बहुत सारे serializing किया गया है इसके साथ रिकॉर्ड खातों। और एक एकाउंटेंट बैलेंस शीट एक पैसा की billionth द्वारा बंद किया जा रहा है के बारे में शिकायत शुरू होता है, तो आप वर्ग बदलने के लिए:
public decimal Balance { get; set; }
समस्या हल, अगले ग्राहक खुश बैलेंस शीट है। जब तक आपको किसी मौजूदा ग्राहक को पुराने प्रारूप में बहुत सी धारावाहिक रिकॉर्ड के साथ अपग्रेड करने के लिए कहा नहीं जाता है। बड़ी समस्या, कक्षा बदल गई है, इसलिए आप अब रिकॉर्ड को deserialize नहीं कर सकते हैं।
बाहरी उपनाम आपकी समस्या हल करता है, तो आप अपने कोड में पुराने संस्करण और कक्षा के नए संस्करण दोनों को संदर्भित कर सकते हैं, भले ही नामस्थान नाम और कक्षा के नाम समान हों।
बाहरी उपनाम का उपयोग करने के लिए बहुत अंतर्दृष्टिपूर्ण उपयोग-मामला। – RBT
- 1. हमें सी # में चेक ऑपरेटर का उपयोग कब करना चाहिए?
- 2. हमें FSharpFunc.Adapt का उपयोग कब करना चाहिए?
- 3. एसपीएल बनाम ऐरे: हमें एसपीएल का उपयोग कब करना चाहिए और हमें PHP में ऐरे का उपयोग कब करना चाहिए?
- 4. हमें कक्षा का उपयोग कब करना चाहिए और जब हमें
- 5. सी # में अस्थिर कीवर्ड का उपयोग कब किया जाना चाहिए?
- 6. हमें निजी या संरक्षित का उपयोग कब करना चाहिए?
- 7. हमें उदाहरण का उपयोग कब करना चाहिए और
- 8. मुझे "स्वयं" कीवर्ड का उपयोग कब करना चाहिए?
- 9. हमें सी # में अक्षर का उपयोग क्यों करना चाहिए?
- 10. हमें EntityManagerFactory को कब बंद करना चाहिए?
- 11. सी # मुझे सूची का उपयोग कब करना चाहिए और मुझे सरणीसूची का उपयोग कब करना चाहिए?
- 12. हमें सी # में निहित और स्पष्ट ऑपरेटरों का उपयोग कब करना चाहिए?
- 13. मुझे अपाचे कॉमन्स 'Validate.isTrue का उपयोग कब करना चाहिए, और मुझे केवल' assert 'कीवर्ड का उपयोग कब करना चाहिए?
- 14. एमवीसी: हमें "नियंत्रक" की आवश्यकता क्यों है, या हमें इस पैटर्न का उपयोग कब करना चाहिए?
- 15. सी # का उपयोग कब करें "यह" कीवर्ड
- 16. बाहरी "सी" का उपयोग कब करें?
- 17. मुझे उद्देश्य सी में असाइन का उपयोग कब करना चाहिए?
- 18. उद्देश्य-सी में, मुझे कक्षा विधियों का उपयोग कब करना चाहिए और मुझे उदाहरण विधियों का उपयोग कब करना चाहिए?
- 19. हमें आईआईएस में डब्ल्यूसीएफ सेवा कब होस्ट करनी चाहिए और हमें विंडोज़ सेवा में कब होस्ट करना चाहिए?
- 20. सी ++ में बाहरी "सी" का उपयोग कब करें?
- 21. आपको जेसीआर का उपयोग कब करना चाहिए और आपको जेपीए/आरडीबीएमएस का उपयोग कब करना चाहिए?
- 22. कीवर्ड का उपयोग कब करें
- 23. सी # में वैश्विक :: कीवर्ड का उपयोग क्या है?
- 24. सरल शब्दों में बाहरी "सी" का उपयोग कब करें?
- 25. क्या हमें उपयोगकर्ता कहानियों में व्यक्तित्व का उपयोग करना चाहिए?
- 26. हमें जावास्क्रिप्ट में ++ का उपयोग क्यों नहीं करना चाहिए?
- 27. मुझे पैरामीटर का उपयोग कब करना चाहिए?
- 28. मुझे GC.SuppressFinalize() का उपयोग कब करना चाहिए?
- 29. मुझे _aligned_malloc() का उपयोग कब करना चाहिए?
- 30. मुझे CompiledQuery का उपयोग कब करना चाहिए?
@masoud ramezani +1 आपके प्रश्न के लिए ... –
यहां इस विषय पर एक लेख है: http://en.csharp-online.net/ECMA-334:_16.3_Extern_alias_directives –