Freigeben über


OpCodes.Ldvirtftn Feld

Definition

Legt einen nicht verwalteten Zeiger (Typ native int) auf systemeigenen Code auf dem Auswertungsstapel ab. Dieser Code implementiert eine bestimmte virtuelle Methode, die einem angegebenen Objekt zugeordnet ist.

public: static initonly System::Reflection::Emit::OpCode Ldvirtftn;
public static readonly System.Reflection.Emit.OpCode Ldvirtftn;
 staticval mutable Ldvirtftn : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldvirtftn 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
FE 07 <T> ldvirtftn method Pusht den Zeiger auf die virtuelle Methode method eines Objekts im Stapel.

Das Stapelübergangsverhalten in sequenzieller Reihenfolge lautet:

  1. Ein Objektverweis wird auf den Stapel gepusht.

  2. Der Objektverweis wird aus dem Stapel geknallt, und die Adresse des Einstiegspunkts zur -Methode (wie durch das Metadatentoken methodangegeben) wird nachgeschlagen.

  3. Der Zeiger auf method wird auf den Stapel verschoben.

Der resultierende nicht verwaltete Zeiger, der von der -Anweisung auf den Stapel gepusht wird, kann mithilfe der ldvirtftnCalli -Anweisung aufgerufen werden, wenn er auf eine verwaltete Methode verweist (oder auf einen Stub, der von verwaltetem zu nicht verwaltetem Code übergeht).

Der nicht verwaltete Zeiger verweist mithilfe der CLR-Aufrufkonvention auf nativen Code. Dieser Methodenzeiger sollte nicht als Rückrufroutine an nicht verwalteten nativen Code übergeben werden.

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

Gilt für: