Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 63994|Svare: 1

[Kilde] C# arver bestemmelsen av IsAssignableFrom, IsSubclassOf

[Kopier lenke]
Publisert på 18.11.2019 11:45:09 | | |
Noen ganger må vi avgjøre om en klasse implementerer et grensesnitt, for eksempel når man bruker en refleksjonsmekanisme for å finne en spesifikk type.

Enkelt sagt kan du bruke metoden Type.IsAssignableFrom:

IsAssignableFrom indikerer om BarClass-typen kan tildeles IFoo-grensesnittet, så betingelsen for at den skal returnere true er at BarClass direkte eller indirekte implementerer IFoo-grensesnittet. Det finnes også en metode i typetypen, IsSubclassOf, som erBareBrukes til å vurdere arveforhold mellom klasser, slik som

Indikerer at FooClass er arvet fra BarClass.

Selvfølgelig kan IsAssignableFrom også brukes til å bestemme arv.

Så, for følgende kode:

grensesnitt I { /* ... */ }
klasse A : I { /* ... */ }
klasse B : A { /* ... */ }
Returverdiene for IsSubclassOf og IsAssignableFrom er:

typeof(A).isAssignableFrom(typeof(I)); falsk
typeof(A).isSubClassOf(typeof(I)); falsk
  
typeof(I).isAssignableFrom(typeof(A)); Sant
typeof(I).isAssignableFrom(typeof(B)); Sant
typeof(B).isSubClassOf(typeof(I)); falsk
  
typeof(A).isAssignableFrom(typeof(A)); Sant
typeof(A).isSubClassof(typeof(A)); falsk
  
type(A).isAssignableFrom(typeof(B)); Sant
typeav(A).isSubClassof(typeof(B)); falsk
  
type(B).isAssignableFrom(typeof(A)); falsk
typeof(B).isSubClassof(typeof(A)); Sant






Foregående:.NET Core tidsstempelkonvertering (10-bit)
Neste:EF Core pit: DbContextPool forårsaker utmattelse av databasetilkoblingspoolen
 Vert| Publisert på 19.03.2021 13:39:47 |
Får et objekt som arver en generisk baseklasse

Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com