2012-07-09 5 views
5

क्या केवल एक वर्ग आयात करने के लिए एलियासिंग का उपयोग कर पूरे नामस्थान बनाम आयात करने के बीच कोई प्रदर्शन अंतर है? यदि हां, तो इसमें कितना अंतर है?सी # में उपनाम का उपयोग कर पूरे नेमस्पेस बनाम आयात करने के बीच प्रदर्शन?


उदाहरण:

एक पूरे नाम स्थान आयात कर रहा है:

using System.Reflection; 

एलियासिंग केवल एक वर्ग आयात करने के लिए:

using BindingFlags = System.Reflection.BindingFlags; 

संपादित करें: क्यों के रूप में व्याख्या की एक बिट अपने उत्तर जिस तरह से इसकी सराहना की जाएगी ... दूसरे शब्दों में, कुछ और से अधिक बस एक हां/कोई जवाब कृपया। और शायद कुछ आधिकारिक स्रोत द्वारा समर्थित कुछ भी?

+0

किसी भी फायदे प्रदान करने के लिए [उपयोग 'करने के संभावित डुप्लिकेट?] (Http://stackoverflow.com/questions/3911141/does-using-provide-any-advantages) – mbeckish

+2

एक उपनाम इम्पीडीडेंस द्वारा कम अव्यवस्था की पेशकश करनी चाहिए , एर, IntelliSense। – HABO

उत्तर

9

शून्य। नेमस्पेस आयात एक संकलन-समय सुविधा है और जेनरेट आईएल बिल्कुल वैसे ही होगा।

+0

असेंबली लोड होने पर रनटाइम के बारे में क्या? क्या निर्दिष्ट वर्ग केवल पूरे नामस्थान में सभी वर्गों को लोड नहीं किया जाएगा? – bsara

+0

@ ब्रैंडन प्रदर्शन प्रभाव परियोजना के संदर्भ के रूप में .dll जोड़ने में हैं। 'उपयोग' कथन को जोड़ने से उन डीएलएस से क्या लोड किया जाता है या नहीं लोड किया जाता है। – Servy

+0

@ ब्रैंडन: यह एक अलग पहलू पूरी तरह से है। नेमस्पेस आयात स्रोत कोड के लिए बस समय बचत/पठनीयता संवर्द्धन होते हैं, परिणामी कोड बिल्कुल वही होता है जैसे आपने System.Collections.Generic.List (उदाहरण के लिए) जैसी चीजें टाइप की हैं। असेंबली लोडिंग और टाइप रेज़ोल्यूशन सीधे नामस्थान आयात से संबंधित नहीं हैं। – Alan

4

नहीं, यह प्रोग्रामर के लिए सिर्फ एक सहायता है, संकलक द्वारा उत्पन्न सीआईएल बिल्कुल वही है।

+0

कोई सीआईएल या तो उत्पन्न नहीं हुआ है, है ना? इसमें क्या होगा? यह एक संकलन-समय निर्देश –

+0

@ कियरन जॉनस्टोन है: बेशक, मेरा कहना है कि पूरे कार्यक्रम के लिए उत्पन्न सीआईएल समान है। – BlackBear

3

कोई प्रदर्शन अंतर नहीं है। एक कहता है 'जब मैं कक्षा का नाम निर्दिष्ट करता हूं तो यहां देखें, यह यहां हो सकता है'। दूसरा कहता है 'जब मैं इस वर्ग या नामस्थान कहता हूं, मेरा मतलब है इसका उपयोग करें'।

-1

नहीं बल्कि अधिक व्यापक। आप उस डीएलएल को लोड करते हैं जिसमें .NET कोर होता है और इसमें दर्जनों नामस्थान होंगे। आप वास्तव में पहले से लोड किए गए डीएल के बाहर चलने तक नामस्थानों को आयात करने के लिए हिट नहीं लेते हैं।

संबंधित मुद्दे