Поделиться через


Shadows (Visual Basic)

Указывает, что объявленный элемент программирования редекларирует и скрывает идентичный именованный элемент или набор перегруженных элементов в базовом классе.

Замечания

Основная цель тени (которая также называется скрытием по имени) заключается в сохранении определения членов класса. Базовый класс может пройти изменение, создающее элемент с тем же именем, что и уже определенный. В этом случае Shadows модификатор принудительно ссылается на класс, который необходимо разрешить определенному элементу, а не к новому элементу базового класса.

Сокрытие и переопределение заменяют наследуемый элемент, но между этими подходами существуют значительные различия. Дополнительные сведения см. в разделе "Тени" в Visual Basic.

Правила

  • Контекст объявления. Можно использовать Shadows только на уровне класса. Это означает, что контекст объявления для Shadows элемента должен быть классом и не может быть исходным файлом, пространством имен, интерфейсом, модулем, структурой или процедурой.

    Можно объявить только один элемент тени в одной инструкции объявления.

  • Объединенные модификаторы. Нельзя указать Shadows вместе с Overloads, Overridesили Static в том же объявлении.

  • Типы элементов. Можно скрыть любой тип объявленного элемента, используя любой другой тип. Если вы тени свойства или процедуры с другим свойством или процедурой, параметры и тип возвращаемого значения не должны соответствовать свойствам базового класса или процедуре.

  • Доступа к. Теневой элемент базового класса обычно недоступен в производном классе, который тенирует его. Однако применяются следующие рекомендации.

    • Если элемент тени недоступен из кода, ссылающегося на него, ссылка разрешается в теневой элемент. Например, если Private элемент тени элемента базового класса, код, который не имеет разрешения на доступ Private к элементу базового класса, обращается к элементу базового класса.

    • Если вы тени элемента, вы по-прежнему можете получить доступ к теневым элементу через объект, объявленный типом базового класса. Вы также можете получить доступ к нему через MyBase.

Модификатор Shadows можно использовать в следующих контекстах:

См. также