Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 63994|Svar: 1

[Källa] C# ärver bestämningen av IsAssignableFrom, IsSubclassOf

[Kopiera länk]
Publicerad på 2019-11-18 11:45:09 | | |
Ibland behöver vi avgöra om en klass implementerar ett gränssnitt, till exempel när man använder en reflektionsmekanism för att hitta en specifik typ.

Enkelt uttryckt kan du använda metoden Type.IsAssignableFrom:

IsAssignableFrom anger om BarClass-typen kan tilldelas IFoo-gränssnittet, så villkoret för att den ska returneras sann är att BarClass direkt eller indirekt implementerar IFoo-gränssnittet. Det finns också en metod i typtypen, IsSubclassOf, som ärEndastAnvänds för att bedöma arvsrelationer för klasser, såsom

Indikerar att FooClass ärvs från BarClass.

Självklart kan IsAssignableFrom också användas för att bestämma arv.

Så, för följande kod:

gränssnitt I { /* ... */ }
klass A: I { /* ... */ }
klass B : A { /* ... */ }
Returvärdena för IsSubclassOf och IsAssignableFrom är:

typeof(A).isAssignableFrom(typeof(I)); falskt
typeof(A).isSubClassOf(typeof(I)); falskt
  
typeof(I).isAssignableFrom(typeof(A)); Sant
typeof(I).isAssignableFrom(typeof(B)); Sant
typeof(B).isSubClassOf(typeof(I)); falskt
  
typeof(A).isAssignableFrom(typeof(A)); Sant
typeof(A).isSubClassof(typeof(A)); falskt
  
typeof(A).isAssignableFrom(typeof(B)); Sant
typeof(A).isSubClassof(typeof(B)); falskt
  
typeof(B).isAssignableFrom(typeof(A)); falskt
typeof(B).isSubClassof(typeof(A)); Sant






Föregående:.NET Core Tidsstämpelkonvertering (10-bitars)
Nästa:EF Core-grop: DbContextPool orsakar utmattning av databasanslutningspoolen
 Hyresvärd| Publicerad på 2021-03-19 13:39:47 |
Får ett objekt som ärver en generisk basklass

Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com