Если у вас естьC# в VS2005: Агрегаты, перечисленные в папке «Ссылки» в проекте
using XXXX.YYYY;
в верхней части C# файл, вам нужно включить эту сборку в References части проекта ?
В чем разница?
Если у вас естьC# в VS2005: Агрегаты, перечисленные в папке «Ссылки» в проекте
using XXXX.YYYY;
в верхней части C# файл, вам нужно включить эту сборку в References части проекта ?
В чем разница?
Ключевое слово «using» - это способ избежать необходимости вводить все пространство имен для класса каждый раз, если он живет за пределами текущего пространства имен.
Например, если у меня есть пространство имен foo
, и я хочу, чтобы ссылаться на MyClass
в пространстве имен bar
я могу либо написать:
bar.MyClass = new bar.MyClass();
или
using bar;
...
MyClass = new MyClass();
ссылок часть проекта сообщает компилятору какие библиотеки за пределами текущего проекта ищут класс бар.MyClass
Итак, вкратце вы делаете а не необходимо указать инструкцию using (но, как правило, код легче читать и меньше для ввода), но вам нужна ссылка на сборку.
Вы не пишете using XXXX.dll
в верхней части файла CS.
Я считаю, что вы имеете в виду using NamespaceX;
, что является способом классификации ваших классов в разных логических разделах. Поэтому я объединил все свои классы доступа к данным в пространство имен MyProject.DataAccess. Сборка может содержать классы, принадлежащие нескольким пространствам имен.
В этом случае вам необходимо обратиться к сборке X, если вы хотите использовать некоторые типы/классы, определенные в сборке X, с этим пространством имен.
В заявлении using
указано, что вы хотите импортировать пространство имен в файл, предоставляя вам сокращенный доступ. Например, вы можете написать File.Delete(file)
вместо System.Io.File.Delete(file)
, если вы импортировали пространство имен System.Io
. Пространство имен, которое вы включаете, должно быть доступно в одной из ваших сборок ссылок. Как известно, вы не можете напрямую ссылаться на DLL прямо из вашего кода.
Ссылки необходимо добавить, чтобы они могли быть физически расположены компилятором во время компиляции.
Для более подробной информации смотреть на http://en.csharp-online.net/CSharp_FAQ:_Why_add_a_using_statement_and_a_reference
Надеются, что это помогает.
Спасибо,
Madhup
OK, но это немного сбивает с толку, когда упомянутые узлы также имеют точки в именах. Почему компилятор просто не использует «using XXX.YYY;» как и другие компиляторы? Кажется, я удваиваю ссылки. –
Поскольку пространства имен внутри сборки не должны совпадать с именем сборки, это просто соглашение, а не правило, основанное на компиляторе. Также несколько версий сборки могут использовать одно и то же пространство имен (подумайте об элементах NUnit или MS Logging), поэтому вам нужно сообщить компилятору, какую версию вы ссылаетесь. – Paolo