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, wobei entweder ein NULL-Verweis oder ein instance dieser Klasse oder Schnittstelle zurückgegeben wird.

Das Übergangsverhalten des Stapels 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 eine 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 oben im Stapel implementiert class (wenn class eine Schnittstelle ist) oder eine abgeleitete 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 ob Castclass aufgerufen worden wäre. Andernfalls wird ein NULL-Verweis auf den Stapel gepusht. Wenn der Objektverweis selbst ein NULL-Verweis ist, isinst gibt ebenfalls einen NULL-Verweis zurück.

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: