Что именно делает директива using? - PullRequest
6 голосов
/ 22 октября 2010

На MSDN я могу прочитать, что он делает, но я хотел бы знать, что он делает технически (сообщает компилятору, где искать типы ..)?Я имею в виду использование в качестве директивы.

Ответы [ 4 ]

8 голосов
/ 22 октября 2010

Основная функция директивы using - сделать типы в пространстве имен доступными без указания кода пользователя.Он рассматривает набор пространств имен и типов, которые определены в ссылочных сборках и компилируемом проекте.

Возьмем, к примеру, следующее определение в MyTypes.Dll

namespace MyTypes {
  class Class1 {}
}

Теперь рассмотрим ссылку MyTypes.dll из другого проекта с другим пространством имен.Без директивы using для создания Class1 мне нужно указать имя

MyTypes.Class1 local1 = new MyTypes.Class1();

Директива using позволяет мне удалить эту квалификацию

using MyTypes;
...
Class1 local1 = new Class1();
2 голосов
/ 22 октября 2010

@ JaredPar ответ правильный, однако я хотел бы добавить, что он не совсем работает так же, как, скажем, import в Java. (кто-то исправит меня, если я ошибаюсь в том, что Java import фактически импортирует его в память)

Вам нужно включить либо DLL, либо ссылку на проект, чтобы можно было даже использовать using, однако он не загружается в память, пока вы на самом деле не вызовете метод / свойство / что-то в сборке. Таким образом, вы можете иметь using System.Linq;, но если вы на самом деле не используете какие-либо методы Linq, сборка Linq никогда не загружается. (Я не уверен на 100%, что Linq находится в своей собственной физической сборке, поскольку пространства имен и сборки не 1: 1, но для примера я предполагаю, что это так)

0 голосов
/ 22 октября 2010

, используя только указание компилятору перейти в файл конфигурации сборки и найти конкретную DLL с указанным именем, если DLL найдена, то она связывает эту dll с текущим проектом.Использование - это просто операция соединения, чтобы DLL общалась друг с другом в общем пространстве памяти.Парень внизу здесь прав

0 голосов
/ 22 октября 2010

using сообщает компилятору, в каких пространствах имен искать имена, используемые в файле, но не определенные в файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...