Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 63994|Svar: 1

[Kilde] C# arver bestemmelsen af IsAssignableFrom, IsSubclassOf

[Kopier link]
Opslået på 18/11/2019 11.45.09 | | |
Nogle gange skal vi afgøre, om en klasse implementerer et interface, for eksempel når man bruger en refleksionsmekanisme til at finde en bestemt type.

Kort sagt kan du bruge Type.IsAssignableFrom-metoden:

IsAssignableFrom angiver, om BarClass-typen kan tildeles IFoo-interfacet, så betingelsen for, at den returnerer sand, er, at BarClass direkte eller indirekte implementerer IFoo-interfacet. Der findes også en metode i typetypen, IsSubclassOf, som erKunBruges til at bedømme arveforhold for klasser, såsom

Angiver at FooClass arves fra BarClass.

Selvfølgelig kan IsAssignableFrom også bruges til at bestemme arv.

Så for følgende kode:

interface I { /* ... */ }
klasse A : I { /* ... */ }
klasse B : A { /* ... */ }
Returværdierne for IsSubclassOf og IsAssignableFrom er:

typeof(A).isAssignableFrom(typeof(I)); falsk
typeof(A).isSubClassOf(typeof(I)); falsk
  
typeof(I).isAssignableFrom(typeof(A)); Sandt
typeof(I).isAssignableFrom(typeof(B)); Sandt
typeaf(B).isSubClassOf(typeof(I)); falsk
  
typeof(A).isAssignableFrom(typeof(A)); Sandt
typeaf(A).isSubClassof(typeof(A)); falsk
  
typeof(A).isAssignableFrom(typeof(B)); Sandt
typeaf(A).isSubClassof(typeof(B)); falsk
  
typeof(B).isAssignableFrom(typeof(A)); falsk
typeof(B).isSubClassof(typeof(A)); Sandt






Tidligere:.NET Core tidsstempelkonvertering (10-bit)
Næste:EF Core-pit: DbContextPool forårsager udtømning af databaseforbindelsespoolen
 Udlejer| Opslået på 19/03/2021 13.39.47 |
Får et objekt, der arver en generisk baseklasse

Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com