Поделиться через


OpCodes.Mkrefany Поле

Определение

Помещает в стек вычислений ссылку на экземпляр определенного типа.

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 

Значение поля

Комментарии

В следующей таблице приведен шестнадцатеричный формат инструкции и формат сборки msil, а также краткий обзор:

Формат Формат сборки Описание
C6 <T> mkrefany class Помещает типизированные ссылки типа class в стек.

Переходный режим стека в последовательном порядке:

  1. Указатель на фрагмент данных помещается в стек.

  2. Указатель извлекается и преобразуется в типизированный справочник типа class.

  3. Типизированные ссылки помещается в стек.

Инструкция mkrefany поддерживает передачу динамически типизированных ссылок. Указатель должен иметь тип &, *или , и native intсодержать допустимый адрес фрагмента данных. Class — это токен класса, описывающий тип данных, на которые ссылается указатель. Mkrefany отправляет типизированные ссылки в стек, предоставляя непрозрачный дескриптор указателя и тип class.

Единственной допустимой операцией, разрешенной для типизированной ссылки, является передача ее в метод, требующий типизированной ссылки в качестве параметра. Затем вызываемый объект может использовать инструкции Refanytype и Refanyval для получения типа (класса) и адреса соответственно.

TypeLoadException возникает, если class не удается найти. Обычно это обнаруживается, когда инструкции MSIL преобразуются в машинный код, а не во время выполнения.

Следующая Emit перегрузка mkrefany метода может использовать код операции:

Применяется к