Freigeben über


OpCodes.Isinst Feld

Definition

Überprüft, ob ein Objektverweis (Typ O) eine Instanz einer bestimmten Klasse ist.

public: static initonly System::Reflection::Emit::OpCode Isinst;
public static readonly System.Reflection.Emit.OpCode Isinst;
 staticval mutable Isinst : System.Reflection.Emit.OpCode
Public Shared ReadOnly Isinst As OpCode 

Feldwert

Hinweise

In der folgenden Tabelle sind das Hexadezimal- und MSIL-Assemblyformat (Microsoft Intermediate Language) der Anweisung sowie eine kurze Referenzzusammenfassung aufgeführt:

Format Assemblyformat BESCHREIBUNG
75 <T> isinst class Testet, ob ein Objektverweis ein instance von classist, und gibt entweder einen NULL-Verweis oder einen instance dieser Klasse oder Schnittstelle zurück.

Das Stapelübergangsverhalten in sequenzieller Reihenfolge lautet:

  1. Ein Objektverweis wird auf den Stapel gepusht.

  2. Der Objektverweis wird aus dem Stapel geknallt und getestet, um festzustellen, ob es sich um einen instance der in classübergebenen Klasse handelt.

  3. Das Ergebnis (entweder ein Objektverweis oder ein NULL-Verweis) wird auf den Stapel gepusht.

Class ist ein Metadatentoken, das die gewünschte Klasse angibt. Wenn die Klasse des Objekts am Anfang des Stapels implementiert (wenn class es sich um eine Schnittstelle handelt) oder eine abgeleitete class Klasse von class ist (wenn class es sich um eine reguläre Klasse handelt), wird sie in den Typ class umgewandelt, und das Ergebnis wird auf den Stapel gepusht, genau so, als wäre Castclass es aufgerufen worden. Andernfalls wird ein NULL-Verweis auf den Stapel gepusht. Wenn der Objektverweis selbst ein NULL-Verweis ist, isinst wird ebenfalls ein NULL-Verweis zurückgegeben.

TypeLoadException wird ausgelöst, wenn die Klasse nicht gefunden werden kann. Dies wird in der Regel erkannt, wenn die MSIL-Anweisungen (Microsoft Intermediate Language) nicht zur Laufzeit, sondern in nativen Code konvertiert werden.

Die folgende Emit Methodenüberladung kann den isinst opcode verwenden:

Gilt für: