هل "استخدام مساحة الاسم؛` تستهلك المزيد من الذاكرة؟

StackOverflow https://stackoverflow.com/questions/558110

  •  05-09-2019
  •  | 
  •  

سؤال

هل Using Namespace; تستهلك المزيد من الذاكرة؟

أنا أعمل حاليا على تطبيقات محمولة وكنت فضوليا فقط إذا كان أولئك الذين يستخدمون ببيانات أن أماكن Visual Studio عند إنشاء فئة تجعل طلبي يتطلب تشغيل بعض الذاكرة الإضافية.

هل كانت مفيدة؟

المحلول

لوضعها ببساطة: لا.

هذه البيانات غير مترجمة إلى أي شكل من أشكال IL. انهم مجرد اختصارات لتجنب استخدام أسماء النوع (القبيح!) مؤهلة بالكامل. ولكن، إذا كنت تستخدم VS2008 و / أو R # يمكنك إزالة تلك غير المستخدمة تلقائيا.

نصائح أخرى

مساحات الأسماء هي ميزة Compile-Time فقط من C # التي تسمح لك بتوفير الوقت أثناء التطوير. ال using يتم استخدام التوجيهات من قبل المحول البرمجي للبحث عن أسماء نوع الاختصار في التعليمات البرمجية الخاصة بك.

في كل مرة في كل مرة يواجه فيها المحول البرمجي اسم النوع في التعليمات البرمجية التي لا تعرفها using التوجيه وإعداده على اسم النوع وترى إذا كان هذا الاسم المؤهل بالكامل يحل.

بمجرد إنشاء تطبيق المساحات المسمير using وتذهب التوجيهات كما لا تحتاج IL.

إذا كنت عن طريق "الذاكرة" تقصد "يجب أن أتذكر السبب في أنني وضعت تلك التي تستخدم البيانات في الأعلى في المقام الأول" ثم نعم.

ولكن، لا ليس بالمعنى الذي تقصد. يتم تحميل مجموعات .NET عادة عند الطلب، لذلك لن تتحمل أي عقوبة أداء من خلال وجود هذه البيانات الإضافية. ومع ذلك، من أجل الصيانة، سترغب في إزالتها.

إليك معلومات Microsoft عن كلمة المرور الرئيسية "باستخدام" في هذا السياق: http://msdn.microsoft.com/en-us/library/sf0df423.aspx.. وبعد يوفر أساسا بديلا لاستخدام الاسم المؤهل بالكامل في التجميع، لكنه لا يستورد في الواقع أو تضمين التجميعات في الذاكرة مع هذه الكلمة الرئيسية المعينة.

لا، ليس كذلك. إنه ببساطة اختصار يسمح لك باستخدام اسم النوع فقط

stringbuilder.

بدلا من اسم نوع الاسم المؤهل

system.text.stringbuilder.

في الملف الذي يتم فيه إعلان بيان الاستخدام.

لا، سوف يجعل المترجم فقط تشغيل أبطأ قليلا :)

لم يحدث ذلك. يتم استخدامه بحيث لا يتعين عليك تحديد الكائن الذي تستخدمه باسمك الكامل. بدلا من system.io.file، يمكنك فقط القيام بالملف إذا كنت تستخدم System.io.

لا يتم تحميله في الذاكرة حتى تقوم بالفعل بإنشاء الكائن. بخلاف C ++ لم يتم استيراد المكتبة بأكملها، لأن .NET Framework مثبت على الجهاز المستهدف وتحميله في GAC، و LLL مخصص في مجلد BIN لمجلد التطبيق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top