2010-04-27 2 views

ответ

0

Ключевое слово «using» - это способ избежать необходимости вводить все пространство имен для класса каждый раз, если он живет за пределами текущего пространства имен.

Например, если у меня есть пространство имен foo, и я хочу, чтобы ссылаться на MyClass в пространстве имен bar я могу либо написать:

bar.MyClass = new bar.MyClass(); 

или

using bar; 
... 
MyClass = new MyClass(); 

ссылок часть проекта сообщает компилятору какие библиотеки за пределами текущего проекта ищут класс бар.MyClass

Итак, вкратце вы делаете а не необходимо указать инструкцию using (но, как правило, код легче читать и меньше для ввода), но вам нужна ссылка на сборку.

+0

OK, но это немного сбивает с толку, когда упомянутые узлы также имеют точки в именах. Почему компилятор просто не использует «using XXX.YYY;» как и другие компиляторы? Кажется, я удваиваю ссылки. –

+0

Поскольку пространства имен внутри сборки не должны совпадать с именем сборки, это просто соглашение, а не правило, основанное на компиляторе. Также несколько версий сборки могут использовать одно и то же пространство имен (подумайте об элементах NUnit или MS Logging), поэтому вам нужно сообщить компилятору, какую версию вы ссылаетесь. – Paolo

0

Вы не пишете using XXXX.dll в верхней части файла CS.

Я считаю, что вы имеете в виду using NamespaceX;, что является способом классификации ваших классов в разных логических разделах. Поэтому я объединил все свои классы доступа к данным в пространство имен MyProject.DataAccess. Сборка может содержать классы, принадлежащие нескольким пространствам имен.

В этом случае вам необходимо обратиться к сборке X, если вы хотите использовать некоторые типы/классы, определенные в сборке X, с этим пространством имен.

0

В заявлении using указано, что вы хотите импортировать пространство имен в файл, предоставляя вам сокращенный доступ. Например, вы можете написать File.Delete(file) вместо System.Io.File.Delete(file), если вы импортировали пространство имен System.Io. Пространство имен, которое вы включаете, должно быть доступно в одной из ваших сборок ссылок. Как известно, вы не можете напрямую ссылаться на DLL прямо из вашего кода.

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