Compartilhar via


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 elemento Shadows 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 com Overloads, Overrides ou Static 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 elemento Private 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:

Confira também