更新 : 2007 年 11 月
アプリケーションがアクセスできる範囲に同じ名前の要素が複数存在する場合は、名前を修飾することにより、Visual Basic コンパイラは、意図した特定の要素に参照を対応させることができます。詳細については、「方法 : 宣言された要素名を修飾する」を参照してください。
使用例
次の例では、同じ名前の 2 つの変数が、同じ名前の異なるコンテナ要素に含まれています。変数は Shared で宣言してありますが、これは単にコード例を短くするためです。
Namespace space1
Public Class innerClass
' String showMe is declared Shared to facilitate reference.
Public Shared showMe As String = "Shared string 1"
End Class
End Namespace
Namespace space2
Public Class innerClass
' String showMe is declared Shared to facilitate reference.
Public Shared showMe As String = "Shared string 2"
End Class
End Namespace
Public Module callShowMe
Public Sub showStrings()
MsgBox("From space1: " & space1.innerClass.showMe _
& vbCrLf & "From space2: " & space2.innerClass.showMe)
End Sub
End Module
上の例では、同じ showMe という名前で 2 つの変数を宣言しています。いずれの変数も、それぞれ innerClass というクラスの中にあります。2 つの変数を含むコンテナ要素の名前が同じであるため、呼び出し元のコードでは、変数 showMe をコンテナ innerClass で修飾するだけでは不十分です。innerClass を、さらにそのコンテナである space1 または space2 で修飾する必要があります。それぞれの修飾文字列に、一意な宣言への、あいまいさのないパスが指定されているため、Visual Basic コンパイラではそれぞれの参照を解決できます。
堅牢性の高いプログラム
同じ名前で宣言してある変数が少なければ少ないほど、誤って他の変数を参照してしまう可能性は小さくなります。また、参照先との一致に関する問題も最小化できます。
セキュリティ
同じ名前で宣言してある変数が少なければ少ないほど、悪意のあるコードによって変数が不正に使用される可能性も少なくなります。
参照
処理手順
方法 : 派生クラスによって非表示になっている変数にアクセスする