2009-02-17 3 views
7

Using Namespace; потребляет больше памяти?«Использует пространство имен», «потребляет больше памяти?

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

ответ

13

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

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

+0

автоматическое, хорошее одно. – tafa

1

Нет, это только сделает компилятор работать чуть-чуть медленнее :)

5

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

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

После того как приложение скомпилировано, пространства имен и директивы using исчезли, так как ИЛ им не нужны.

0

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

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

2

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

StringBuilder

В отличие от имени типа пространства имен квалифицированных:

System.Text.StringBuilder

в файле, где объявляется оператор using.

3

Если под «памятью» вы подразумеваете «Я должен помнить, почему я в первую очередь ставил их с помощью утверждений наверху», то да.

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

+1

Никогда не недооценивайте «OutOfMemoryExceptions», которые встречаются в голове разработчика. – bzlm

+0

+1 хорошая аналогия –

3

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

Смежные вопросы