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

Vista: 63994|Resposta: 1

[Fonte] C# herda a determinação de IsAssignableFrom, IsSubclassOf

[Copiar link]
Publicado em 18/11/2019 11:45:09 | | |
Às vezes, precisamos determinar se uma classe implementa uma interface, como ao usar um mecanismo de reflexão para encontrar um tipo específico.

Em termos simples, você pode usar o método Type.IsAssignableFrom:

IsAssignableFrom indica se o tipo BarClass pode ser atribuído à interface IFoo, então a condição para que retorne true é que BarClass implemente direta ou indiretamente a interface IFoo. Existe também um método no tipo Type, IsSubclassOf, que éUsado para julgar relações de herança de classes, como

Indica que o FooClass é herdado do BarClass.

Claro, IsAssignableFrom também pode ser usado para determinar a herança.

Então, para o seguinte código:

interface I { /* ... */ }
classe A : I { /* ... */ }
classe B : A { /* ... */ }
Os valores de retorno para IsSubclassOf e IsAssignableFrom são:

typeof(A).isAssignableDe(tipode(I)); falso
tipo(A).éSubclasseOf(tipo(I)); falso
  
typeof(I).isAssignableFrom(typeof(A)); Verdade
typeof(I).éAssignávelDe(tipode(B)); Verdade
tipo(B).éSubclasseDe(tipode(I)); falso
  
typeof(A).isAssignableFrom(typeof(A)); Verdade
tipo(A).éSubclasse(tipo(A)); falso
  
typeof(A).isAssignableDe(tipode(B)); Verdade
tipoof(A).éSubclasse(tipode(B)); falso
  
typeof(B).isAssignableDe(tipode(A)); falso
tipoof(B).éSubclasse(tipode(A)); Verdade






Anterior:Conversão de Carimbo de Tempo do .NET Core (10 bits)
Próximo:Núcleo EF Pit: DbContextPool causa esgotamento da conexão com o pool de banco de dados
 Senhorio| Publicado em 19/03/2021 13:39:47 |
Obtém um objeto que herda uma classe base genérica

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