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


OpCodes.Ret Поле

Определение

Выполняет возврат из текущего метода, помещая возвращаемое значение (если имеется) из стека вычислений вызываемого метода в стек вычислений вызывающего метода.

public: static initonly System::Reflection::Emit::OpCode Ret;
public static readonly System.Reflection.Emit.OpCode Ret;
 staticval mutable Ret : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ret As OpCode 

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

Комментарии

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

Формат Формат сборки Описание
2A Ret Возвращает из метода , возможно, возвращая значение.

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

  1. Возвращаемое значение извлекается из стека оценки вызываемого объекта.

  2. Возвращаемое значение, полученное на шаге 1, передается в стек оценки вызывающей стороны.

Если возвращаемое значение отсутствует в стеке оценки вызываемого объекта, значение не возвращается (нет поведения перехода стека для вызываемого или вызывающего метода).

Тип возвращаемого значения текущего метода определяет тип значения, извлекаемого из верхней части стека и копируемый в стек метода, который вызвал текущий метод. Стек оценки для текущего метода должен быть пустым, за исключением возвращаемого значения.

Инструкцию ret нельзя использовать для передачиtry управления из блока , filter, catchили finally . В или trycatchиспользуйте инструкцию Leave с назначением ret инструкции, которая находится за пределами всех вложенных блоков исключений. Так как блоки filter и finally логически являются частью обработки исключений, а не методом, в который внедрен их код, правильно созданные инструкции MSIL не выполняют возврат метода из или filterfinally.

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

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