Share via


方法 : 宣言された要素名を修飾する

更新 : 2007 年 11 月

宣言された要素をコードから参照するときには、Visual Basic のコンパイラが、参照内の名前をその名前の適切な宣言に対応させる必要があります。要素がコードの外で定義されている場合、あるいは同じ名前で複数の要素が宣言されている場合、コンパイラであいまいさを解決できるように、あるいは要素を特定できるようにするため、名前を修飾する必要があります。

名前を修飾するということは、ソース ステートメント内で、ターゲットの要素が定義された場所を識別する情報よりも前に置くことを意味します。この情報は、修飾文字列と呼ばれます。1 つまたは複数の名前空間とモジュール、クラス、または構造体を含めることができます。

修飾文字列では、明確にモジュール、クラス、またはターゲット要素を含む構造体を指定する必要があります。コンテナは、その代わりに他のコンテナ要素、通常は名前空間に配置されます。修飾文字列にはいくつかのコンテナ要素を含める必要があります。

名前を修飾して宣言された要素にアクセスするには

  1. 要素が定義された場所を特定します。これには、名前空間、あるいは名前空間の階層までもが含まれる場合があります。最下位レベルの名前空間では、要素はモジュール、クラス、または構造体に含まれている必要があります。

    ' Assume the following hierarchy exists outside your code.
    Namespace outerSpace
        Namespace innerSpace
            Module holdsTotals
                Public Structure totals
                    Public thisTotal As Integer
                    Public Shared grandTotal As Long
                End Structure
            End Module
        End Namespace
    End Namespace
    
  2. ターゲット要素の場所に基づいて修飾パスを決定します。最高位レベルの名前空間から始まり、最下位レベルの名前空間まで進み、ターゲット要素を含むモジュール、クラス、または構造体で終わります。パス内の各要素は、その後に続く要素を含む必要があります。

    outerSpace → innerSpace → holdsTotals → totals

  3. ターゲット要素の修飾文字列を準備します。パス内の各要素の後ろにはピリオド (.) を付ける必要があります。アプリケーションは、修飾文字列内のすべての要素に対するアクセス権限を持っている必要があります。

    outerSpace.innerSpace.holdsTotals.totals.
    
  4. 通常の方法で、ターゲット要素を参照する式または代入ステートメントを作成します。

    grandTotal = 9000
    
  5. ターゲットの要素名は修飾文字列に先行します。要素を含むモジュール、クラス、または構造体の後ろのピリオド (.) の直後に、名前を指定する必要があります。

    ' Assume the following module is part of your code.
    Module accessGrandTotal
        Public Sub setGrandTotal()
            outerSpace.innerSpace.holdsTotals.totals.grandTotal = 9000
        End Sub
    End Module
    
  6. コンパイラは修飾文字列を使用して、ターゲット要素の参照と対応する、明白で、あいまいでない宣言を特定します。

参照

処理手順

方法 : 同じ名前を持つ 2 つの要素を区別する

方法 : 自分で宣言した変数と同じ名前の変数を隠す

方法 : 継承された変数を隠す

方法 : 派生クラスによって非表示になっている変数にアクセスする

概念

宣言された要素の特性

同じ名前を持つ複数の変数がある場合に参照を解決する

Visual Basic の宣言ステートメント

その他の技術情報

宣言された要素の参照