Freigeben über


OpCodes.Mkrefany Feld

Definition

Legt einen typisierten Verweis auf eine Instanz eines bestimmten Typs auf dem Auswertungsstapel ab.

public: static initonly System::Reflection::Emit::OpCode Mkrefany;
public static readonly System.Reflection.Emit.OpCode Mkrefany;
 staticval mutable Mkrefany : System.Reflection.Emit.OpCode
Public Shared ReadOnly Mkrefany 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
C6 <T> mkrefany class Pusht einen typisierten Verweis vom Typ class auf den Stapel.

Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:

  1. Ein Zeiger auf daten wird auf den Stapel gepusht.

  2. Der Zeiger wird in einen typisierten Verweis vom Typ classkonvertiert.

  3. Der typisierte Verweis wird auf den Stapel gepusht.

Die mkrefany -Anweisung unterstützt die Übergabe dynamisch typisierter Verweise. Der Zeiger muss vom Typ &, *oder native intsein und die gültige Adresse eines Datenteils enthalten. Class ist das Klassentoken, das den Typ der Daten beschreibt, auf die der Zeiger verweist. Mkrefany pusht einen typisierten Verweis auf den Stapel und stellt einen undurchsichtigen Deskriptor des Zeigers und des Typs classbereit.

Der einzige gültige Vorgang, der für einen typisierten Verweis zulässig ist, besteht darin, ihn an eine Methode zu übergeben, die einen typisierten Verweis als Parameter erfordert. Der Angerufene kann dann die Refanytype Anweisungen und Refanyval verwenden, um den Typ (Klasse) bzw. die Adresse abzurufen.

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

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

Gilt für: