Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 63994|Risposta: 1

[Fonte] C# eredita la determinazione di IsAssignableFrom, IsSubclassOf

[Copiato link]
Pubblicato su 18/11/2019 11:45:09 | | |
A volte dobbiamo determinare se una classe implementa un'interfaccia, ad esempio quando si usa un meccanismo di riflessione per trovare un tipo specifico.

In termini semplici, puoi usare il metodo Type.IsAssignableFrom:

IsAssignableFrom indica se il tipo BarClass può essere assegnato all'interfaccia IFoo, quindi la condizione per restituirne la verità è che BarClass implementi direttamente o indirettamente l'interfaccia IFoo. Esiste anche un metodo nel tipo di tipo, IsSubclassOf, che èSoloUsata per giudicare le relazioni ereditarie tra le classi, come

Indica che FooClass è ereditato da BarClass.

Naturalmente, IsAssignableFrom può essere usato anche per determinare l'ereditariità.

Quindi, per il seguente codice:

interfaccia I { /* ... */ }
classe A : I { /* ... */ }
classe B : A { /* ... */ }
I valori di ritorno per IsSubclassOf e IsAssignableFrom sono:

typeof(A).isAssignableFrom(typeof(I)); falso
typeof(A).isSottoclasse Di(tipo(I)); falso
  
typeof(I).isAssignableFrom(typeof(A)); Vero
typeof(I).isAssignableFrom(typeof(B)); Vero
typeof(B).isSubclassOf(typeof(I)); falso
  
typeof(A).isAssignableFrom(typeof(A)); Vero
tipoof(A).Sottoclasse di(tipo(A)); falso
  
typeof(A).isAssignableFrom(typeof(B)); Vero
typeof(A).isSottoclasse(tipodi(B)); falso
  
typeof(B).isAssignableFrom(typeof(A)); falso
tipo(B).Sottoclasse di(tipo(A)); Vero






Precedente:Conversione Timestamp .NET Core (10 bit)
Prossimo:Cavità EF Core : DbContextPool causa esaurimento della connessione al pool di database
 Padrone di casa| Pubblicato su 19/03/2021 13:39:47 |
Ottiene un oggetto che eredita una classe base generica

Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com