如何:限定已声明的元素名
更新:2007 年 11 月
如果代码引用已声明元素,则 Visual Basic 编译器将引用中的名称与该名称的相应声明进行匹配。如果元素是在代码之外定义的,或者使用同一名称声明了多个元素,则可能需要“限定”该名称,以使编译器能够解决任何可能的多义性或找到该元素。
限定名称意味着要在源语句中该名称的前面提供信息,标识出定义目标元素的位置。此信息称为“限定字符串”。它可以包含一个或多个命名空间以及一个模块、类或结构。
限定字符串应唯一地指定目标元素所在的模块、类或结构。容器依次位于另一个包含元素(通常是命名空间)中。限定字符串可能需要包含多个包含元素。
通过限定名称访问已声明元素
确定定义元素的位置。这可能包括一个命名空间,甚至一个命名空间层次结构。在最低层命名空间内,元素必须包含在模块、类或结构内。
' 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
基于目标元素的位置确定限定路径。从最高层命名空间开始,直到最低层命名空间,并以包含目标元素的模块、类或结构结束。路径中的每个元素都必须包含其后的元素。
outerSpace → innerSpace → holdsTotals → totals
准备目标元素的限定字符串。在路径中每个元素的后面放置一个句点 (.)。应用程序必须能够访问限定字符串中的每个元素。
outerSpace.innerSpace.holdsTotals.totals.
以常规方式编写引用目标元素的表达式或赋值语句。
grandTotal = 9000
在目标元素名前面放置限定字符串。元素名称应紧跟在包含该元素的模块、类或结构之后的句点 (.) 后面。
' Assume the following module is part of your code. Module accessGrandTotal Public Sub setGrandTotal() outerSpace.innerSpace.holdsTotals.totals.grandTotal = 9000 End Sub End Module
编译器使用限定字符串来查找可与目标元素引用匹配的明确、唯一的声明。