Вопрос

Делает Using Namespace; потреблять больше памяти?

В настоящее время я работаю над мобильным приложением, и мне было просто любопытно, не заставляют ли те ненужные инструкции using, которые visual Studio размещает при создании класса, мое приложение требовать дополнительной памяти для запуска.

Это было полезно?

Решение

Проще говоря:нет.

Эти утверждения не переведены ни в какую форму IL.Это просто ярлыки, позволяющие избежать использования (уродливых!) полных имен типов.Но, если вы используете VS2008 и / или R #, вы можете удалить неиспользуемые из них автоматически.

Другие советы

Пространства имен - это функция C #, доступная только во время компиляции, которая позволяет вам экономить время во время разработки.В using директивы используются компилятором для поиска сокращенных имен типов в вашем коде.

По сути, каждый раз, когда компилятор встречает в вашем коде имя типа, о котором он не знает, он принимает каждое using директива и добавляет ее к имени типа и проверяет, разрешается ли это полное имя.

Как только ваше приложение будет скомпилировано, пространства имен и using директивы исчезли, поскольку IL в них не нуждается.

Если под "памятью" вы имеете в виду "я должен помнить, почему я в первую очередь поместил эти инструкции using вверху", то да.

Но нет, не в том смысле, который вы имеете в виду.Сборки .NET обычно загружаются по требованию, поэтому вы не понесете никакого ущерба производительности из-за наличия этих дополнительных инструкций.Однако в целях удобства обслуживания вы захотите удалить их.

вот информация Microsoft о ключевом слове "using" в этом контексте: http://msdn.microsoft.com/en-us/library/sf0df423.aspx.по сути, это предоставляет альтернативу использованию полного имени в сборке, но фактически это не импортирует и не включает сборки в память с этим конкретным ключевым словом.

Нет, это не так.Это просто сокращение, позволяющее вам использовать только имя типа

Строковый конструктор

В отличие от имени типа, определяемого пространством имен:

System.Text.Строковый конструктор

В файле, где объявлена инструкция using.

Нет, это только заставит компилятор работать немного медленнее :)

Это не так.Он используется для того, чтобы вам не нужно было определять используемый вами объект по вашему полному имени.Вместо System.IO.File вы можете просто сделать File, если вы используете System.IO .

Он не загружается в память до тех пор, пока вы фактически не создадите объект.В отличие от C ++, вся библиотека не импортируется, потому что .NET framework установлен на целевой машине и загружен в GAC, а ваш пользовательский .dll-файлы находятся в папке bin папки application.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top