Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 63994|Atsakyti: 1

[Šaltinis] C# paveldi IsAssignableFrom, IsSubclassOf nustatymą

[Kopijuoti nuorodą]
Paskelbta 2019-11-18 11:45:09 | | |
Kartais turime nustatyti, ar klasė įgyvendina sąsają, pavyzdžiui, kai naudojamas atspindžio mechanizmas, kad surastume konkretų tipą.

Paprasčiau tariant, galite naudoti metodą Type.IsAssignableFrom:

IsAssignableFrom nurodo, ar BarClass tipą galima priskirti IFoo sąsajai, todėl sąlyga, kad jis grąžintų true, yra ta, kad BarClass tiesiogiai arba netiesiogiai įgyvendina IFoo sąsają. Taip pat yra tipo tipo metodas IsSubclassOf, kuris yraTikNaudojamas vertinant klasių paveldėjimo santykius, pvz.,

Nurodo, kad FooClass paveldėta iš BarClass.

Žinoma, IsAssignableFrom taip pat gali būti naudojamas paveldėjimui nustatyti.

Taigi, šiam kodui:

sąsaja I { /* ... */ }
A klasė : I { /* ... */ }
B klasė : A { /* ... */ }
IsSubclassOf ir IsAssignableFrom grąžinamos reikšmės yra šios:

typeof(A).isAssignableFrom(typeof(I)); klaidingas
typeof(A).isSubClassOf(typeof(I)); klaidingas
  
typeof(I).isAssignableFrom(typeof(A)); Tiesa
typeof(I).isAssignableFrom(typeof(B)); Tiesa
typeof(B).isSubClassOf(typeof(I)); klaidingas
  
typeof(A).isAssignableFrom(typeof(A)); Tiesa
typeof(A).isSubClassof(typeof(A)); klaidingas
  
typeof(A).isAssignableFrom(typeof(B)); Tiesa
typeof(A).isSubClassof(typeof(B)); klaidingas
  
typeof(B).isAssignableFrom(typeof(A)); klaidingas
typeof(B).isSubClassof(typeof(A)); Tiesa






Ankstesnis:.NET Core laiko žymos konvertavimas (10 bitų)
Kitą:EF Core duobė: DbContextPool sukelia duomenų bazės ryšio telkinio ryšio išeikvojimą
 Savininkas| Paskelbta 2021-03-19 13:39:47 |
Gauna objektą, kuris paveldi bendrąją bazinę klasę

Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com