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 

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

Комментарии

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

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

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

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

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

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

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

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

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

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