ПОНЯТНО О Visual Basic NET (том 3)


Пространства имен - часть 3


Эти три пространства имен порождены потому, что мы написали соответствующий код в окнах кода. Взглянув на него, легко видеть, что для того, чтобы породить пространство имен, достаточно в окне кода написать пару строк:

Namespace …………

 

End Namespace

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

Класс КлассНоль записан вне созданных нами пространств имен, но он все равно входит в пространство имен Сборка, так как все, что написано в окнах кода какого-нибудь проекта, автоматически входит в пространство имен этого проекта. Аналогично класс Form1 входит в пространство имен Проект.

Чтобы получить пространства имен В и С, входящие внутрь пространства имен А, запишите так:

Namespace А

        Namespace В

 

        End Namespace

 

        Namespace С

 

        End Namespace

End Namespace

Смысл пространств имен. Среди огромного количества классов, модулей и других компонентов библиотеки классов .NET Framework наверняка есть «тезки». Чтобы их не перепутать, «тезок» «рассовали» по разным пространствам имен. Вот половина ответа.

Вот другая половина. Предположим, вы создаете проект библиотеки из нескольких десятков классов, в которой встречаются классы, посвященные музыке, и классы, посвященные графике. У вас может встретиться класс TransFormat, посвященный преобразованию формата звуковых файлов, и класс с тем же именем TransFormat, посвященный преобразованию формата графических файлов. Но тезки в пределах одного пространства имен недопустимы, поэтому вам придется один из этих классов переименовывать, чего вам делать не хочется. Удобная и изящная альтернатива: организовать пространство имен Music и пространство имен Графика, а затем «распихать» классы между этими пространствами.

Обратите внимание, что и в нашем примере в пространствах имен 1 и 2 есть одноименные классы, которые без них конфликтовали бы. А вот организовывать пространство имен 3, оказывается, не было никакой нужды, так как его модуль 1 все равно находился бы в другом пространстве имен, чем его тезка из пространства имен 1.




Начало  Назад  Вперед



Книжный магазин