Sombras (Visual Basic)
Especifica que um elemento de programação declarado declara novamente e oculta um elemento nomeado de maneira idêntica, ou conjunto de elementos sobrecarregados, em uma classe base.
Comentários
A principal finalidade do sombreamento (que também é conhecido como ocultar por nome) é preservar a definição de seus membros de classe. A classe base pode sofrer uma alteração que cria um elemento com o mesmo nome que você já definiu. Se isso acontecer, o modificador Shadows
força as referências por meio de sua classe a serem resolvidas para o membro que você definiu, em vez de para o novo elemento de classe base.
O sombreamento e a substituição redefinem um elemento herdado, mas há diferenças significativas entre as duas abordagens. Para obter mais informações, confira Sombreamento no Visual Basic.
Regras
Contexto da declaração. Você só pode usar
Shadows
no nível da classe. Isso significa que o contexto de declaração de um elementoShadows
precisa 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. Você não pode especificar
Shadows
junto comOverloads
,Overrides
ouStatic
na mesma declaração.Tipos de elemento. Você pode sombrear qualquer tipo de elemento declarado com qualquer outro tipo. Se você sombrear uma propriedade ou um procedimento com outra propriedade ou procedimento, os parâmetros e o tipo de retorno não precisarão corresponder àqueles na propriedade ou no 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, as considerações a seguir se aplicam.
Se o elemento de sombreamento não estiver acessível do código que se refere a ele, a referência será resolvida para o elemento sombreado. Por exemplo, se um elemento
Private
sombrear um elemento de classe base, o código que não tem permissão para acessar o elementoPrivate
acessará 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 por meio de
MyBase
.
O modificador Shadows
pode ser usado nestes contextos: