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
|