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

Структура программы на языке Fore.NET упорядочивается путём применения пространств имён.

Каждый модуль с текстом программы состоит из следующих блоков (в указанном порядке):

  1. Ноль или более директив Imports.

  2. Ноль или более глобальных атрибутов.

  3. Ноль или более определений пространства имён и членов пространств имён.

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

Директивы Imports упрощают использование пространств имён и типов, определенных в других пространствах имён и влияют на процесс разрешения имён при компиляции. Директива Imports импортирует типы, содержащиеся в указанном пространстве имён, что позволяет использовать неквалифицированные идентификаторы при обращении к типам. Импорт производится только из указанного пространства имён не производя импорт типов из вложенных в него пространств имён. В случае наличия в импортированном пространстве имён члена имя которого совпадает с именем, определенным внутри текущего кода или тела пространства имён, приоритет имеет имя определенное локально, а не импортированное.

Определение пространства имён состоит из ключевого слова Namespace за которым следует наименование пространства имён и его тело, завершающиеся последовательностью ключевых слов End Namespace.

Определение пространства имён может быть произведено как на уровне глобального пространства имён, так и внутри другого пространства имён. В обоих случаях наименование пространства имён должно быть уникальным внутри объемлющего пространства имён. Внутри пространства имён могут быть определены любые типы, доступные в Fore.NET.

Пространства имён имеют открытый уровень доступа и их определения не могут содержать модификаторов доступа.

Опциональные директивы Imports в теле пространства имён импортируют имена других пространств имён и типов, позволяя ссылаться на них непосредственно без использования квалифицированных идентификаторов.

Пространства имён являются расширяемыми, два определения пространств имён с одинаковыми полностью квалифицированными именем пополняют одно пространство определений.

Пример

Imports System;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Ui;

[Assembly(AssemblyTitle("Тестовое приложение"))]
[Assembly(AssemblyCompanyAttribute("Any Company"))]
[Assembly(AssemblyVersion("1.0.0.0"))]

Namespace UserApplication
    Var
        s: string;
        i: integer;
    Const
        e = 0.0001;
    //Объявление типов и членов типов
    //организующих код пользовательского приложения
End Namespace;

См. также:

Руководство по языку Fore.NET