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


Shadows

Обновлен: Ноябрь 2007

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

Заметки

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

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

Правила

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

    Можно объявить только один затененный элемент в одном операторе объявлений.

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

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

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

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

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

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

Оператор класса

Оператор Const

Оператор Declare

Оператор Delegate

Оператор Dim

Оператор Enum

Оператор Event

Оператор Function

Оператор Interface

Оператор Property

Оператор Structure

Оператор Sub

См. также

Основные понятия

Сокрытие в Visual Basic

Ссылки

Shared (Visual Basic)

Static (Visual Basic)

Private (Visual Basic)

MyBase

MustOverride

NotOverridable

Overloads

Overridable

Overrides