Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 63994|Odpověď: 1

[Zdroj] C# dědí určení IsAssignableFrom, IsSubclassOf

[Kopírovat odkaz]
Zveřejněno 18.11.2019 11:45:09 | | |
Někdy musíme určit, zda třída implementuje rozhraní, například při použití reflexního mechanismu k nalezení konkrétního typu.

Jednoduše řečeno, můžete použít metodu Type.IsAssignableFrom:

IsAssignableFrom označuje, zda lze typ BarClass přiřadit rozhraní IFoo, takže podmínkou pro vrácení true je, že BarClass přímo či nepřímo implementuje rozhraní IFoo. Existuje také metoda v typu IsSubclassOf, která jePouzePoužívá se k posuzování dědických vztahů tříd, jako jsou

Označuje, že FooClass je zděděn z BarClass.

Samozřejmě, IsAssignableFrom lze také použít k určení dědičnosti.

Takže pro následující kód:

rozhraní I { /* ... */ }
třída A : Já { /* ... */ }
třída B : A { /* ... */ }
Návratové hodnoty pro IsSubclassOf a IsAssignableFrom jsou:

typeof(A).isAssignableFrom(typeof(I)); false
typeof(A).isSubClassOf(typeof(I)); false
  
typeof(I).isAssignableFrom(typeof(A)); Pravda
typeof(I).isAssignableFrom(typeof(B)); Pravda
typeof(B).isSubClassOf(typeof(I)); false
  
typeof(A).isAssignableFrom(typeof(A)); Pravda
typeof(A).isSubClassof(typeof(A)); false
  
typeof(A).isAssignableFrom(typeof(B)); Pravda
typeof(A).isSubClassof(typeof(B)); false
  
typeof(B).isAssignableFrom(typeof(A)); false
typeof(B).isSubClassof(typeof(A)); Pravda






Předchozí:Převod časových razítek do .NET Core (10bit)
Další:EF Core pit: DbContextPool způsobuje vyčerpání spojení databázového poolu
 Pronajímatel| Zveřejněno 19.03.2021 13:39:47 |
Získá objekt, který dědí generickou základní třídu

Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com