如何:限定已声明的元素名

更新:2007 年 11 月

如果代码引用已声明元素,则 Visual Basic 编译器将引用中的名称与该名称的相应声明进行匹配。如果元素是在代码之外定义的,或者使用同一名称声明了多个元素,则可能需要“限定”该名称,以使编译器能够解决任何可能的多义性或找到该元素。

限定名称意味着要在源语句中该名称的前面提供信息,标识出定义目标元素的位置。此信息称为“限定字符串”。它可以包含一个或多个命名空间以及一个模块、类或结构。

限定字符串应唯一地指定目标元素所在的模块、类或结构。容器依次位于另一个包含元素(通常是命名空间)中。限定字符串可能需要包含多个包含元素。

通过限定名称访问已声明元素

  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. 编译器使用限定字符串来查找可与目标元素引用匹配的明确、唯一的声明。

请参见

任务

如何:区分两个名称相同的元素

如何:隐藏与您的变量同名的变量

如何:隐藏继承的变量

如何:访问被派生类隐藏的变量

概念

已声明元素的特性

有多个同名变量时解析引用

声明语句 (Visual Basic)

其他资源

对已声明元素的引用