See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 63994|Vastuse: 1

[Allikas] C# pärib määramise IsAssignableFrom, IsSubclassOf

[Kopeeri link]
Postitatud 18.11.2019 11:45:09 | | |
Mõnikord tuleb kindlaks teha, kas klass rakendab liidest, näiteks kui kasutatakse peegeldusmehhanismi konkreetse tüübi leidmiseks.

Lihtsustatult öeldes võid kasutada meetodit Type.IsAssignableFrom:

IsAssignableFrom näitab, kas BarClass tüüpi saab määrata IFoo liidesele, seega on tingimus, et see tagastab tõe, et BarClass rakendab IFoo liidese otse või kaudselt. Tüübitüübis on olemas ka meetod IsSubclassOf, mis onAinultKasutatakse klasside pärimissuhete hindamiseks, näiteks

Näitab, et FooClass on päritud BarClassilt.

Loomulikult saab IsAssignableFrom kasutada ka pärilikkuse määramiseks.

Seega, järgmise koodi puhul:

liides I { /* ... */ }
klass A : I { /* ... */ }
klass B : A { /* ... */ }
IsSubclassOf ja IsAssignableFrom tagastusväärtused on:

typeof(A).isAssignableFrom(typeof(I)); vale
typeof(A).isSubClassOf(typeof(I)); vale
  
typeof(I).isAssignableFrom(typeof(A)); Tõsi
typeof(I).isAssignableFrom(typeof(B)); Tõsi
typeof(B).isSubClassOf(typeof(I)); vale
  
typeof(A).isAssignableFrom(typeof(A)); Tõsi
typeof(A).isSubClassof(typeof(A)); vale
  
typeof(A).isAssignableFrom(typeof(B)); Tõsi
typeof(A).isSubClassof(typeof(B)); vale
  
typeof(B).isAssignableFrom(typeof(A)); vale
typeof(B).isSubClassof(typeof(A)); Tõsi






Eelmine:.NET tuuma ajatempli teisendamine (10-bitine)
Järgmine:EF Core pit: DbContextPool põhjustab andmebaasi ühenduse ühenduse ammendumist
 Üürileandja| Postitatud 19.03.2021 13:39:47 |
Saab objekti, mis pärib üldise baasklassi

Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com