How to: Qualify a Declared Element Name
When your code refers to a declared element, the Visual Basic compiler must match the name in your reference to the appropriate declaration of that name. If the element is defined outside your code, or if more than one element is declared with the same name, you might need to qualify the name to allow the compiler to resolve any possible ambiguity or to locate the element.
Qualifying a name means preceding it in your source statement with information that identifies where the target element is defined. This information is called a qualification string. It can include one or more namespaces and a module, class, or structure.
The qualification string should unambiguously specify the module, class, or structure containing the target element. The container might in turn be located in another containing element, usually a namespace. You might need to include several containing elements in the qualification string.
To access a declared element by qualifying its name
Determine the location in which the element has been defined. This might include a namespace, or even a hierarchy of namespaces. Within the lowest-level namespace, the element must be contained in a module, class, or structure.
' 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
Determine a qualification path based on the target element's location. Start with the highest-level namespace, proceed to the lowest-level namespace, and end with the module, class, or structure containing the target element. Each element in the path must contain the element that follows it.
outerSpace
→innerSpace
→holdsTotals
→totals
Prepare the qualification string for the target element. Place a period (.) after every element in the path. Your application must have access to every element in your qualification string.
outerSpace.innerSpace.holdsTotals.totals.
Write the expression or assignment statement referring to the target element in the normal way.
grandTotal = 9000
Precede the target element name with the qualification string. The name should immediately follow the period (.) that follows the module, class, or structure that contains the element.
' Assume the following module is part of your code. Module accessGrandTotal Public Sub setGrandTotal() outerSpace.innerSpace.holdsTotals.totals.grandTotal = 9000 End Sub End Module
The compiler uses the qualification string to find a clear, unambiguous declaration to which it can match the target element reference.
See Also
Tasks
How to: Distinguish Between Two Elements with the Same Name
How to: Hide a Variable with the Same Name as Your Variable
How to: Hide an Inherited Variable
How to: Access a Variable Hidden by a Derived Class
Concepts
Declared Element Characteristics
Resolving a Reference When Multiple Variables Have the Same Name
Declaration Statements in Visual Basic