Imports ステートメント (.NET 名前空間および型)
名前空間による修飾なしで型名を参照できるようにします。
Imports [ aliasname = ] namespace
-or-
Imports [ aliasname = ] namespace.element
指定項目
語句 |
定義 |
aliasname |
省略可能です。コードが namespace を参照するために、完全修飾文字列の代わりに使用するインポート エイリアスまたは名前です。「宣言された要素の名前 (Visual Basic)」を参照してください。 |
namespace |
必ず指定します。インポートされる名前空間の完全修飾名を指定します。入れ子構造のどのレベルにある名前空間の文字列でも指定できます。 |
element |
省略可能です。名前空間に宣言されているプログラミング要素の名前を指定します。任意のコンテナー 要素を指定できます。 |
解説
Imports ステートメントを使用すると、指定された名前空間に含まれる型を直接参照できます。
入れ子になった名前空間の名前空間名または文字列を 1 つで指定できます。より高いレベルの名前空間から入れ子にされた名前空間を区切るには、ピリオド (.) を使います。次に例を示します。
Imports System.Collections.Generic
1 つのファイルで使用できる Imports ステートメントの数に制限はありません。このステートメントの前には、Option Strict ステートメントなどの任意のオプションを宣言する必要があり、後には Module ステートメントや Class ステートメントなどの任意のプログラミング要素を宣言する必要があります。
Imports を使用できるのはファイル レベルだけです。つまり、インポートの宣言コンテキストは、ソース ファイルである必要があり、名前空間、クラス、構造体、モジュール、インターフェイス、プロシージャ、またはブロックでは宣言できません。
Imports ステートメントを指定しても、他のプロジェクトとアセンブリの要素を自分のプロジェクトで使用できるようになるわけではありません。インポートは参照を設定する代わりには使用できません。もともとプロジェクトで利用可能な名前を修飾する必要がなくなるだけです。詳細については、「宣言された要素の参照 (Visual Basic)」の「コンテナー要素のインポート」を参照してください。
[!メモ]
[参照設定] ページ (プロジェクト デザイナー) (Visual Basic) を使用して、暗黙的な Imports ステートメントを定義できます。詳細については、「方法 : インポートした名前空間を追加または削除する (Visual Basic)」を参照してください。
インポート エイリアス
インポート エイリアスは、名前空間または型のエイリアスを定義します。1 つ以上の名前空間で宣言されているのと同名の項目を使用する必要がある場合は、インポート エイリアスが便利です。詳細と使用例については、「宣言された要素の参照 (Visual Basic)」の「要素名の修飾」を参照してください。
aliasname と同じ名前のモジュールのレベルでメンバーを宣言することはできません。宣言した場合、Visual Basic コンパイラは宣言されたメンバーにのみ aliasname を使用し、これをインポート エイリアスとして認識しなくなります。
インポート エイリアスの宣言に使用される構文は、XML 名前空間プレフィックスのインポートに使用される構文と似ていますが、結果は異なります。インポート エイリアスはコード内で式として使用できるのに対して、XML 名前空間プレフィックスは XML リテラルまたは XML 軸プロパティで、修飾された要素名または属性名のプレフィックスとしてのみ使用できます。
要素名
element を指定する場合、その要素はコンテナー要素であることが必要です。つまり、他の要素を格納できるプログラミング要素を指定する必要があります。コンテナー要素にはクラス、構造体、モジュール、インターフェイス、および列挙体が含まれます。
Imports ステートメントによって利用可能になる要素のスコープは、element を指定するかどうかによって変わります。namespace だけを指定した場合、その名前空間の一意な名前を持つすべてのメンバー、およびその名前空間に含まれるコンテナー要素のメンバーを、修飾子なしで使用できます。namespace と element を指定した場合は、その要素のメンバーだけを修飾子なしで使用できます。
使用例
次の例では、DirectoryInfo クラスを使用して、C:\ ディレクトリ内のすべてのフォルダーを返します。
ファイルの先頭に Imports ステートメントがありません。そのため、DirectoryInfo、StringBuilder、および CrLf の各参照は、すべて名前空間で完全に修飾されています。
Public Function GetFolders() As String
' Create a new StringBuilder, which is used
' to efficiently build strings.
Dim sb As New System.Text.StringBuilder
Dim dInfo As New System.IO.DirectoryInfo("c:\")
' Obtain an array of directories, and iterate through
' the array.
For Each dir As System.IO.DirectoryInfo In dInfo.GetDirectories()
sb.Append(dir.Name)
sb.Append(Microsoft.VisualBasic.ControlChars.CrLf)
Next
Return sb.ToString
End Function
次の例では、参照される名前空間に対する Imports ステートメントを使用しています。そのため、型を名前空間で完全に修飾する必要はありません。
' Place Imports statements at the top of your program.
Imports System.Text
Imports System.IO
Imports Microsoft.VisualBasic.ControlChars
Public Function GetFolders() As String
Dim sb As New StringBuilder
Dim dInfo As New DirectoryInfo("c:\")
For Each dir As DirectoryInfo In dInfo.GetDirectories()
sb.Append(dir.Name)
sb.Append(CrLf)
Next
Return sb.ToString
End Function
次の例では、参照される名前空間のエイリアスを作成する Imports ステートメントを使用しています。型はエイリアスで修飾されています。
Imports systxt = System.Text
Imports sysio = System.IO
Imports ch = Microsoft.VisualBasic.ControlChars
Public Function GetFolders() As String
Dim sb As New systxt.StringBuilder
Dim dInfo As New sysio.DirectoryInfo("c:\")
For Each dir As sysio.DirectoryInfo In dInfo.GetDirectories()
sb.Append(dir.Name)
sb.Append(ch.CrLf)
Next
Return sb.ToString
End Function
次の例では、参照される型のエイリアスを作成する Imports ステートメントを使用しています。エイリアスを使用して型が指定されています。
Imports strbld = System.Text.StringBuilder
Imports dirinf = System.IO.DirectoryInfo
Public Function GetFolders() As String
Dim sb As New strbld
Dim dInfo As New dirinf("c:\")
For Each dir As dirinf In dInfo.GetDirectories()
sb.Append(dir.Name)
sb.Append(ControlChars.CrLf)
Next
Return sb.ToString
End Function