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 Microsoft MSIL-Assemblyformat (Intermediate Language) der Anweisung zusammen mit einer kurzen Referenzzusammenfassung aufgeführt:

Format Assemblyformat Description
75 <T> isinst class Testet, ob ein Objektverweis eine Instanz von class, die entweder einen Nullverweis oder eine Instanz dieser Klasse oder Schnittstelle zurückgibt.

Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:

  1. Ein Objektverweis wird auf den Stapel verschoben.

  2. Der Objektverweis wird aus dem Stapel eingefügt und getestet, um festzustellen, ob es sich um eine Instanz der übergebenen classKlasse handelt.

  3. Das Ergebnis (entweder ein Objektverweis oder ein Nullverweis) wird auf den Stapel verschoben.

Class ist ein Metadatentoken, das die gewünschte Klasse angibt. Wenn die Klasse des Objekts oben im Stapel implementiert class wird (wenn class es sich um eine Schnittstelle handelt) oder eine abgeleitete Klasse von class (wenn class es sich um eine normale Klasse handelt) wird sie in die Eingabe class umgewandelt, und das Ergebnis wird auf den Stapel verschoben, genau so, als Castclass ob sie aufgerufen wurde. Andernfalls wird ein Nullverweis auf den Stapel verschoben. Wenn der Objektverweis selbst ein Nullverweis ist, isinst wird ebenfalls ein Nullverweis zurückgegeben.

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

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

Gilt für: