Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 63994|Răspunde: 1

[Sursă] C# moștenește determinarea IsAssignableFrom, IsSubclassOf

[Copiază linkul]
Postat pe 18.11.2019 11:45:09 | | |
Uneori trebuie să determinăm dacă o clasă implementează o interfață, cum ar fi atunci când se folosește un mecanism de reflexie pentru a găsi un anumit tip.

Pe scurt, poți folosi metoda Type.IsAssignableFrom:

IsAssignableFrom indică dacă tipul BarClass poate fi atribuit interfeței IFoo, astfel încât condiția pentru ca acesta să returneze adevărat este ca BarClass să implementeze direct sau indirect interfața IFoo. Există și o metodă în tipul Type, IsSubclassOf, care esteDoarFolosită pentru a judeca relațiile de moștenire ale claselor, cum ar fi

Indică faptul că FooClass este moștenit de la BarClass.

Desigur, IsAssignableFrom poate fi folosit și pentru a determina moștenirea.

Așadar, pentru următorul cod:

interfața I { /* ... */ }
clasa A : I { /* ... */ }
clasa B : A { /* ... */ }
Valorile returnate pentru IsSubclassOf și IsAssignableFrom sunt:

typeof(A).isAssignableFrom(typeof(I)); fals
typeof(A).isSubclassOf(typeof(I)); fals
  
typeof(I).isAssignableFrom(typeof(A)); Adevărat
typeof(I).isAssignableFrom(typeof(B)); Adevărat
typeof(B).isSubclassOf(typeof(I)); fals
  
typeof(A).isAssignableFrom(typeof(A)); Adevărat
typeof(A).isSubclasă(tip(A)); fals
  
typeof(A).isAssignableFrom(typeof(B)); Adevărat
typeof(A).isSubclassof(typeof(B)); fals
  
typeof(B).isAssignableFrom(typeof(A)); fals
typeof(B).isSubclasă(tip(A)); Adevărat






Precedent:Conversia timestamp .NET Core (10 biți)
Următor:Groapa EF Nucleu: DbContextPool cauzează epuizarea conexiunii pool-ului de baze de date
 Proprietarul| Postat pe 19.03.2021 13:39:47 |
Obține un obiect care moștenește o clasă de bază generică

Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com