Descrição:
Existem duas classes, A e B, I A herda a classe B, e B é a classe mãe
Defini as propriedades TestAttribute na classe A e classe B, respectivamente...
Então, considere as características do objeto, e o código é o seguinte:
Descobri que o número de resultados é 1, e o atributo é o conjunto de atributos por A, não o conjunto de atributos por B, muito menos fundidos, por que isso acontece???
[Help("BaseClass")] publicclass Base{} publicclass Derive : Base{} Existem quatro combinações possíveis aqui:
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false] [AttributeUsage(AttributeTargets.Class, AllowMultiple = verdadeiro, Herdado = falso ] [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true ] [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true ] O primeiro caso:
Se consultarmos a classe Derive (veremos depois como consultar as propriedades de uma classe em tempo de execução), veremos que a funcionalidade Ajuda não existe porque a propriedade herdada está definida como falsa.
Segundo caso:
Igual ao primeiro caso, porque herdado também é definido como falso.
A terceira situação:
Para explicar o terceiro e o quarto casos, vamos primeiro adicionar algum código à classe derivada:
[Help("BaseClass")] publicclass Base{}[Help("DeriveClass")] publicclass Derive : Base{} Agora vamos consultar a funcionalidade Ajuda, só podemos obter as propriedades da classe derivada, porque herdado está definido como verdadeiro, mas AllowMultiple está definido como falso. Portanto, a característica Ajuda da classe base é substituída pela funcionalidade de ajuda da classe derivada.
A quarta situação:
Aqui veremos que a classe derivada possui tanto a característica Ajuda da classe base quanto sua própria característica Ajuda, porque AllowMultiple está definida como true.
|