Пространства имен

Пространство имен — это контейнер для типов, определяющий область их види­мости. Пространства имен предотвращают конфликты имен и используются для двух взаимосвязанных целей:

□ логического группирования элементов программы, расположенных в различ­ных физических файлах;

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

Во всех программах, созданных ранее, использовалось пространство имен, созда­ваемое по умолчанию. Реальные программы чаще всего разрабатываются груп­пой программистов, каждый из которых работает со своим набором физических файлов (единиц компиляции), хранящих элементы создаваемого приложения. Если в разных файлах описать пространства имен с одним и тем же именем, то при построении приложения, состоящего из этих файлов, будет скомпоновано единое пространство имен.

В версию языка С# 2.0 введена возможность применять псевдоним пространст­ва имен с помощью операции::, например:

using SIO = System.IO; // псевдоним пространства имен

using MIO = MyLibrary.IO; // псевдоним пространства имен

class Program

{

static void Main()

{

SIO::Stream s = new MIO::EmptyStream(); // использование псевдонимов

}

}

Использование псевдонима для пространства имен гарантирует, что последую­щие подключения других пространств имен к этой сборке не повлияют на суще­ствующие определения. Слева от операции:: можно указать идентификатор global. Он гарантирует, что поиск идентификатора, расположенного справа от операции, будет выполняться только в глобальном пространстве имен. Цель ис­пользования этого идентификатора та же: не допустить изменений существую­щих определений при разработке следующих версий программы, в которых в нее могут быть добавлены новые пространства имен, содержащие элементы с такими же именами.

Таким образом, сборки обеспечивают физическое группирование типов, а про­странства имен — логическое. В мире сетевого программирования, когда про­ граммисту доступны десятки тысяч классов, пространства имен совершенно необходимы как для классификации и поиска, так и для предотвращения кон­фликтов имен типов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: