Joskus meidän täytyy selvittää, toteuttaako luokka rajapinnan, esimerkiksi kun käytetään heijastusmekanismia tietyn tyypin löytämiseen.
Yksinkertaisesti sanottuna voit käyttää Type.IsAssignableFrom-metodia:
IsAssignableFrom kertoo, voidaanko BarClass-tyyppi määrittää IFoo-rajapinnalle, joten ehto, että se palautuu true -arvoon, on, että BarClass toteuttaa suoraan tai epäsuorasti IFoo-rajapinnan. Tyyppityypissä on myös metodi, IsSubclassOf, joka onVainKäytetään luokkien perintösuhteiden arviointiin, kuten
Viittaa siihen, että FooClass on peritty BarClassilta.
Tietenkin IsAssignableFrom-menetelmää voidaan käyttää myös periytymisen määrittämiseen.
Joten, seuraavalle koodille:
Käyttöliittymä I { /* ... */ } luokka A : I { /* ... */ } luokka B : A { /* ... */ } IsSubclassOf ja IsAssignableFrom palautusarvot ovat:
typeof(A).isAssignableFrom(typeof(I)); väärä typeof(A).isSubClassOf(typeof(I)); väärä
typeof(I).isAssignableFrom(typeof(A)); Totta typeof(I).isAssignableFrom(typeof(B)); Totta typeof(B).isSubClassOf(typeof(I)); väärä
typeof(A).isAssignableFrom(typeof(A)); Totta typeof(A).isSubClassof(typeof(A)); väärä
typeof(A).isAssignableFrom(typeof(B)); Totta typeof(A).isSubClassof(typeof(B)); väärä
typeof(B).isAssignableFrom(typeof(A)); väärä typeof(B).isSubClassof(typeof(A)); Totta
|