Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 63994|Antwort: 1

[Quelle] C# erbt die Bestimmung von IsAssignableFrom, IsSubclassOf

[Link kopieren]
Veröffentlicht am 18.11.2019 11:45:09 | | |
Manchmal müssen wir feststellen, ob eine Klasse eine Schnittstelle implementiert, etwa bei Verwendung eines Reflexionsmechanismus, um einen bestimmten Typ zu finden.

Einfach ausgedrückt können Sie die Type.IsAssignableFrom-Methode verwenden:

IsAssignableFrom gibt an, ob der BarClass-Typ der IFoo-Schnittstelle zugewiesen werden kann, daher ist die Bedingung, dass sie true zurückgibt, dass BarClass die IFoo-Schnittstelle direkt oder indirekt implementiert. Es gibt auch eine Methode im Typtyp IsSubclassOf, die istNurVerwendet zur Beurteilung von Erbbeziehungen von Klassen, wie zum Beispiel

Zeigt an, dass FooClass von BarClass übernommen wurde.

Natürlich kann IsAssignableFrom auch zur Bestimmung der Vererbung verwendet werden.

Also, für den folgenden Code:

Schnittstelle I { /* ... */ }
Klasse A : I { /* ... */ }
Klasse B : A { /* ... */ }
Die Rückteilwerte für IsSubclassOf und IsAssignableFrom sind:

typeof(A).isAssignableFrom(typeof(I)); FALSCH
typeof(A).isSubClassOf(typeof(I)); FALSCH
  
typeof(I).isAssignableFrom(typeof(A)); STIMMT
typeof(I).isAssignableFrom(typeof(B)); STIMMT
typeof(B).isSubClassOf(typeof(I)); FALSCH
  
typeof(A).isAssignableFrom(typeof(A)); STIMMT
typeof(A).isSubClassof(typeof(A)); FALSCH
  
typeof(A).isAssignableFrom(typeof(B)); STIMMT
typeof(A).isSubClassof(typeof(B)); FALSCH
  
typeof(B).isAssignableFrom(typeof(A)); FALSCH
typeof(B).isSubClassof(typeof(A)); STIMMT






Vorhergehend:.NET Core Zeitstempel-Konvertierung (10-Bit)
Nächster:EF Core Pit: DbContextPool verursacht die Erschöpfung der Datenbankverbindungspoolverbindungen
 Vermieter| Veröffentlicht am 19.03.2021 13:39:47 |
Erhält ein Objekt, das eine generische Basisklasse erbt.

Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com