Практическое руководство. Уточнение имени объявляемого элемента
Обновлен: Ноябрь 2007
Когда код обращается к объявленному элементу, компилятор 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
Компилятор использует уточняющую строку, чтобы найти точное, однозначное объявление, которому он может сопоставить ссылку на целевой элемент.
См. также
Задачи
Практическое руководство. Различение двух элементов с одинаковыми именами
Практическое руководство. Сокрытие переменной с тем же именем, что и ваша переменная
Практическое руководство. Сокрытие наследуемой переменной
Практическое руководство. Доступ к переменной, скрытой производным классом
Основные понятия
Характеристики объявленных элементов
Разрешение ссылки, когда несколько переменных имеют одинаковые имена
Операторы объявления в Visual Basic