「名前空間」の版間の差分

提供:AB開発Wiki
ナビゲーションに移動検索に移動
(名前空間は、識別子に論理的な階層構造を付与するもの)
 
(カテゴリのソートキーを付与)
 
(同じ利用者による、間の1版が非表示)
28行目: 28行目:
  Imports Active.Basic
  Imports Active.Basic
  C1() 'OK
  C1() 'OK
Imports ステートメントを使用した結果として識別子の区別がつけられない場合は、エラーになります。
Imports ステートメントを使用した結果として識別子の区別が付けられなくなる場合は、エラーになります。
  Namespace Alpha
  Namespace Alpha
     Sub Proc()
     Sub Proc()
45行目: 45行目:
  Imports Beta
  Imports Beta
   
   
  Proc() 'Alpha.ProcとBeta.Procの区別が作れられないのでエラー
  Proc() 'Alpha.ProcとBeta.Procの区別が付けられないのでエラー
   
   
  Alpha.Proc() '名前空間を指定すればOK
  Alpha.Proc() '名前空間を指定すればOK
52行目: 52行目:
  Proc2() 'OK - Beta.Proc2が呼ばれる
  Proc2() 'OK - Beta.Proc2が呼ばれる


[[Category:言語仕様]]
[[Category:言語仕様|なまえくうかん]]

2007年8月6日 (月) 02:54時点における最新版

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

関係するステートメント

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が呼ばれる