名前空間

提供: AB開発Wiki
ナビゲーションに移動検索に移動

名前空間は、識別子(変数、関数、クラスなど)に論理的な階層構造を付与するものです。ライブラリ間や利用者の書いたコードとで同じ識別子が現れてしまうなどといった事態を阻止するための機能です。

関係するステートメント

Namespace ステートメント

Namespaceは、名前空間を定義するステートメントです。

Namespace 名前空間名
    /* 任意のステートメント */
End Namespace

Namespaceは入れ子にできます。

名前空間内で宣言された識別子を参照するには“名前空間名.”で修飾する必要があります。

Imports ステートメント

Importsは、指定した名前空間内の識別子の定義を取り込むステートメントです。

Imports 名前空間名

名前空間の定義と使用の例です。

Namespace Active
    Namespace Basic
        Sub C1()
        End Sub
    End Namespace
End Namespace

Active.Basic.C1() 'OK

Imports Active.Basic
C1() 'OK

Imports ステートメントを使用した結果として識別子の区別が付けられなくなる場合は、エラーになります。

Namespace Alpha
    Sub Proc()
    End Sub
End Namespace

Namespace Beta
    Sub Proc()
    End Sub

    Sub Proc2()
    End Sub
End Namespace

Imports Alpha
Imports Beta

Proc() 'Alpha.ProcとBeta.Procの区別が付けられないのでエラー

Alpha.Proc() '名前空間を指定すればOK
Beta.Proc() '同じくOK

Proc2() 'OK - Beta.Proc2が呼ばれる