Imports ステートメント (.NET 名前空間および型)

名前空間の修飾なしで型名を参照できます。

構文

Imports [ aliasname = ] namespace
' -or-
Imports [ aliasname = ] namespace.element

指定項目

用語 定義
aliasname 任意。 コードで完全修飾文字列の代わりに namespace を参照できる インポート エイリアス または名前。 「 Declared Element Names」を参照してください。
namespace 必須です。 インポートする名前空間の完全修飾名。 任意のレベルに入れ子になった名前空間の文字列を指定できます。
element 任意。 名前空間に宣言されているプログラミング要素の名前。 任意のコンテナー要素を指定できます。

Remarks

Imports ステートメントを使用すると、特定の名前空間に含まれている型を直接参照できます。

1 つの名前空間名または入れ子になった名前空間の文字列を指定できます。 次の例に示すように、入れ子になった各名前空間は、ピリオド (.) で次の上位の名前空間と区別します。

Imports System.Collections.Generic

各ソース ファイルには、任意の数の Imports ステートメントを含めることができます。 これらは、Option Strict ステートメントなど、任意のオプションの宣言の後に続く必要があり、ModuleClass ステートメントなどのプログラミング要素の宣言の前に記述する必要があります。

Imports は、ファイル レベルでのみ使用できます。 つまり、インポートの宣言コンテキストはソース ファイルである必要があり、名前空間、クラス、構造体、モジュール、インターフェイス、プロシージャ、またはブロックでは宣言できません。

Imports ステートメントによって、他のプロジェクトおよびアセンブリの要素をプロジェクトで使用できなくなることに注意してください。 インポートは、参照の設定の代わりになりません。 これにより、プロジェクトで既に使用可能な名前を修飾する必要がなくなるだけです。 詳細については、「宣言された要素の参照」の "コンテナー要素のインポート" に関するセクションを参照してください。

注意

暗黙的な Imports ステートメントを定義するには、「[参照設定] ページ (プロジェクト デザイナー) (Visual Basic)」を使用します。 詳細については、方法:インポートした名前空間を追加または削除する (Visual Basic)」を参照してください。

インポート エイリアス

インポート エイリアス では、名前空間または型のエイリアスを定義します。 インポート エイリアスは、1 つまたは複数の名前空間で宣言されている、同じ名前の項目を使用する必要がある場合に便利です。 詳細と例については、「宣言された要素の参照」の「要素名を修飾する」を参照してください。

モジュール レベルで aliasname と同じ名前のメンバーを宣言することはできません。 そうすると、Visual Basic コンパイラでは、宣言されたメンバーに対してのみ aliasname が使用され、それをインポート エイリアスとして認識されなくなります。

インポート エイリアスの宣言に使用される構文は、XML 名前空間プレフィックスのインポートに使用されるものと似ていますが、結果は異なります。 インポート エイリアスは、コードで式として使用できますが、XML 名前空間プレフィックスは、XML リテラルまたは XML 軸プロパティで、修飾される要素名または属性名のプレフィックスとしてのみ使用できます。

要素の名前

element を指定する場合、コンテナー要素、つまり他の要素を含むことができるプログラミング要素を表す必要があります。 コンテナー要素には、クラス、構造体、モジュール、インターフェイス、および列挙が含まれます。

Imports ステートメントで使用できる要素のスコープは、elementを指定したかどうかによって異なります。 namespace だけを指定する場合、その名前空間の一意の名前を持つすべてのメンバーと、その名前空間内のコンテナー要素のメンバーは、修飾なしで使用できます。 namespaceelement の両方を指定すると、その要素のメンバーだけが修飾なしで使用できます。

例 1

次の例では、DirectoryInfo クラスを使用して、C:\ ディレクトリにあるすべてのフォルダーを返しています。

コードでは、ファイルの先頭に Imports ステートメントがありません。 そのため、DirectoryInfoStringBuilder、および 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

例 2

次の例には、参照先の名前空間の 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

例 3

次の例には、参照先の名前空間のエイリアスを作成する 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

例 4

次の例には、参照先の型のエイリアスを作成する 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

関連項目