Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 63994|Atbildi: 1

[Avots] C# pārmanto IsAssignableFrom, IsSubclassOf noteikšanu

[Kopēt saiti]
Publicēts 18.11.2019 11:45:09 | | |
Dažreiz mums ir jānosaka, vai klase ievieš saskarni, piemēram, izmantojot atstarošanas mehānismu, lai atrastu konkrētu tipu.

Vienkārši sakot, varat izmantot metodi Type.IsAssignableFrom:

IsAssignableFrom norāda, vai BarClass tipu var piešķirt IFoo interfeisam, tāpēc nosacījums, lai tas atgrieztos patiess, ir tāds, ka BarClass tieši vai netieši ievieš IFoo interfeisu. Tipa tipā IsSubclassOf ir arī metode, kas irTikaiIzmanto, lai spriestu par klašu mantojuma attiecībām, piemēram,

Norāda, ka FooClass ir pārmantota no BarClass.

Protams, IsAssignableFrom var izmantot arī, lai noteiktu mantojumu.

Tātad, šādam kodam:

interfeiss I { /* ... */ }
A klase: I { /* ... */ }
B klase: A { /* ... */ }
IsSubclassOf un IsAssignableFrom atgrieztās vērtības ir šādas:

tips(A).isAssignableFrom(tips(I)); nepatiess
typeof(A).isSubClassOf(typeof(I)); nepatiess
  
tips(I).isAssignableFrom(tips(A)); patiess
tips(I).isAssignableFrom(tips(B)); patiess
typeof(B).isSubClassOf(typeof(I)); nepatiess
  
typeof(A).isAssignableFrom(typeof(A)); patiess
typeof(A).isSubclassof(typeof(A)); nepatiess
  
tips(A).isAssignableFrom(tips(B)); patiess
typeof(A).isSubClassof(typeof(B)); nepatiess
  
tips(B).isAssignableFrom(tips(A)); nepatiess
tips(B).isSubclassof(tips(A)); patiess






Iepriekšējo:.NET Core laika zīmoga konvertēšana (10 bitu)
Nākamo:EF Core bedre: DbContextPool izraisa datu bāzes savienojuma pūla savienojuma izsmelšanu
 Saimnieks| Publicēts 19.03.2021 13:39:47 |
Iegūst objektu, kas pārmanto vispārēju pamatklasi

Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com