如何:区分两个名称相同的元素
更新:2007 年 11 月
如果应用程序可以访问名称相同的多个元素,则可以“限定”名称启用 Visual Basic 编译器使引用与要使用的特定元素匹配。有关更多信息,请参见 如何:限定已声明的元素名。
示例
下面的示例演示在名称相同的不同包含元素中的两个名称相同的变量。变量声明为 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,并且每个变量都在名为 innerClass 的类中。由于两个包含元素的名称相同,调用代码不能只使用其容器 innerClass 限定变量 showMe,还必须使用其容器 space1 或 space2 限定 innerClass。Visual Basic 编译器可以解析每个引用,这是因为每个限定字符串都提供了到唯一声明的唯一路径。
可靠编程
声明的名称相同的变量越少,意外引用到其他变量的机会就越少。也可以将引用匹配的问题减至最少。
安全性
声明的名称相同的变量越少,恶意代码不当使用变量的机会也越少。