Freigeben über


OpCodes.Mkrefany-Feld

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

Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared ReadOnly Mkrefany As OpCode
'Usage
Dim value As OpCode

value = OpCodes.Mkrefany
public static readonly OpCode Mkrefany
public:
static initonly OpCode Mkrefany
public static final OpCode Mkrefany
public static final var Mkrefany : OpCode

Hinweise

In der folgenden Tabelle werden das hexadezimale und das Assemblyformat der MSIL (Microsoft Intermediate Language) jeweils mit einer Kurzreferenz aufgeführt:

Format

Assemblyformat

Beschreibung

C6 < T >

mkrefany class

Legt einen typisierten Verweis vom Typ class auf dem Stapel ab.

Im Stapel laufen die folgenden Aktionen in der angegebenen Reihenfolge ab:

  1. Ein Zeiger auf bestimmte Daten wird auf dem Stapel abgelegt.

  2. Der Zeiger wird vom Stapel geholt und in einen typisierten Verweis vom Typ class konvertiert.

  3. Der typisierte Verweis wird auf dem Stapel abgelegt.

Die mkrefany-Anweisung unterstützt das Übergeben von dynamisch typisierten Verweisen. Der Zeiger muss vom Typ &, * oder natural int sein und die gültige Adresse einer bestimmten Datenmenge enthalten. Class ist das Klassentoken, das den Typ der Daten beschreibt, auf die der Zeiger verweist. Mkrefany legt einen typisierten Verweis auf dem Stapel ab, wobei ein nicht transparenter Deskriptor des Zeigers und die class des Typs angegeben wird.

Die einzige zulässige Operation für einen typisierten Verweis ist das Übergeben des Verweises an eine Methode, die einen typisierten Verweis als Parameter erfordert. Die aufgerufene Methode kann anschließend mit der Refanytype-Anweisung und der Refanyval-Anweisung den Typ (Klasse) bzw. die Adresse abrufen.

Wenn class nicht gefunden werden kann, wird TypeLoadException ausgelöst. Dies wird normalerweise nicht zur Laufzeit erkannt, sondern beim Konvertieren von MSIL-Anweisungen (Microsoft Intermediate Language) in systemeigenen Code.

Die folgende Überladung der Emit-Methode verwendet den mkrefany-Opcode:

  • ILGenerator.Emit(OpCode, Type)

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

OpCodes-Klasse
OpCodes-Member
System.Reflection.Emit-Namespace