Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 63994|Odgovoriti: 1

[Vir] C# podeduje določitev IsAssignableFrom, IsSubclassOf

[Kopiraj povezavo]
Objavljeno na 18. 11. 2019 11:45:09 | | |
Včasih moramo ugotoviti, ali razred implementira vmesnik, na primer pri uporabi refleksijskega mehanizma za iskanje določenega tipa.

Preprosto povedano, lahko uporabite metodo Type.IsAssignableFrom:

IsAssignableFrom označuje, ali je mogoče tip razreda BarClass dodeliti vmesniku IFoo, zato je pogoj za vrnitev true, da BarClass neposredno ali posredno implementira vmesnik IFoo. Obstaja tudi metoda v tipu tipa, IsSubclassOf, ki jeSamoUporablja se za presojo dedovanj razredov, kot so

Označuje, da je FooClass podedovan od BarClass.

Seveda se lahko IsAssignableFrom uporabi tudi za določanje dedovanja.

Torej, za naslednjo kodo:

vmesnik I { /* ... */ }
razred A : I { /* ... */ }
razred B : A { /* ... */ }
Vrnjene vrednosti za IsSubclassOf in IsAssignableFrom so:

typeof(A).isAssignableFrom(typeof(I)); napačno
typeof(A).isSubClassOf(typeof(I)); napačno
  
typeof(I).isAssignableFrom(typeof(A)); res
typeof(I).isAssignableFrom(typeof(B)); res
typeof(B).isSubClassOf(typeof(I)); napačno
  
typeof(A).isAssignableFrom(typeof(A)); res
typeof(A).isSubClassof(typeof(A)); napačno
  
typeof(A).isAssignableFrom(typeof(B)); res
typeof(A).isSubClassof(typeof(B)); napačno
  
typeof(B).isAssignableFrom(typeof(A)); napačno
typeof(B).isSubClassof(typeof(A)); res






Prejšnji:Pretvorba časovnih žigov .NET Core (10-bitna)
Naslednji:EF Core pit: DbContextPool povzroči izčrpanost povezave baze podatkov
 Najemodajalec| Objavljeno na 19. 03. 2021 13:39:47 |
Dobi objekt, ki podeduje generični osnovni razred

Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com