「名前空間」の版間の差分
提供:AB開発Wiki
ナビゲーションに移動検索に移動
細 (→例: typo) |
細 (カテゴリのソートキーを付与) |
||
| 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が呼ばれる