Sombras (Visual Basic)
Especifica que um elemento de programação declarado redeclariza e oculta um elemento com nome idêntico, ou conjunto de elementos sobrecarregados, em uma classe base.
Observações
O principal objetivo do sombreamento (que também é conhecido como esconder pelo nome) é preservar a definição dos membros da sua classe. A classe base pode sofrer uma alteração que cria um elemento com o mesmo nome que um que você já definiu. Se isso acontecer, o modificador forçará as Shadows
referências através de sua classe a serem resolvidas para o membro que você definiu, em vez de para o novo elemento de classe base.
Tanto o sombreamento quanto a substituição redefinem um elemento herdado, mas há diferenças significativas entre as duas abordagens. Para obter mais informações, consulte Sombreamento no Visual Basic.
Regras
Contexto da Declaração. Você pode usar
Shadows
apenas no nível da classe. Isso significa que o contexto da declaração para umShadows
elemento deve ser uma classe e não pode ser um arquivo de origem, namespace, interface, módulo, estrutura ou procedimento.Você pode declarar apenas um elemento de sombreamento em uma única instrução de declaração.
Modificadores combinados. Não é possível especificar
Shadows
juntamente comOverloads
,Overrides
ouStatic
na mesma declaração.Tipos de elementos. Você pode sombrear qualquer tipo de elemento declarado com qualquer outro tipo. Se você sombrear uma propriedade ou procedimento com outra propriedade ou procedimento, os parâmetros e o tipo de retorno não precisarão corresponder aos da propriedade ou procedimento da classe base.
Acesso. O elemento sombreado na classe base normalmente não está disponível de dentro da classe derivada que o sombreia. No entanto, aplicam-se as seguintes considerações.
Se o elemento de sombreamento não estiver acessível a partir do código referente a ele, a referência será resolvida para o elemento sombreado. Por exemplo, se um
Private
elemento sombreia um elemento de classe base, o código que não tem permissão para acessar oPrivate
elemento acessa o elemento de classe base.Se você sombrear um elemento, ainda poderá acessar o elemento sombreado por meio de um objeto declarado com o tipo da classe base. Você também pode acessá-lo através do
MyBase
.
O Shadows
modificador pode ser usado nestes contextos: