Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 19862|Resposta: 1

[Fonte] Herança de características .net/c# em detalhes

[Copiar link]
Publicado em 14/02/2017 11:13:38 | | |
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.







Anterior:Atribuição de C# entre duas propriedades de objetos
Próximo:TypeError Não Capturado: a(...). pais(...). eO Eu não é uma função
 Senhorio| Publicado em 30/03/2017 09:35:49 |
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com