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
|