Как работают ссылки и пространства имен? - PullRequest
3 голосов
/ 18 февраля 2010

В настоящее время я занимаюсь разработкой .NET Windows Service и мне интересно, как ссылки и пространства имен работают на высоком уровне.Я из C ++ и знаком только с такими утверждениями, как #include <...> и т. Д. Спасибо за разъяснения.

Ответы [ 2 ]

3 голосов
/ 18 февраля 2010

Ссылка - это просто способ указать компилятору искать в ссылочной сборке типы при попытке их разрешить.

Теперь пространства имен не привязаны к сборкам. Пространства имен - это логическая конструкция, а сборки - физическая конструкция.

Вот почему вы видите классы в .NET из пространства имен System в mscorlib.dll, System.dll, System.Core.dll и т. Д. И т. Д. И т. Д.

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

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

В общем, сохраняйте небольшое пространство для имен (или вообще никакого), и у вас все будет хорошо.

0 голосов
/ 18 февраля 2010

Для всех намерений и целей ссылки (например, с использованием System.Text) аналогичны #includes, но вместо того, чтобы включать заголовочный файл, который вы связываете сборку.

Пространства имен - это действительно удобный способ разделить ваш код на семантически похожие куски; например, все классы типа Xml находятся в System.Xml.

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