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


OpCodes.Leave_S Поле

Определение

Выполняет выход из защищенной области кода с безусловной передачей управления указанной конечной инструкции (короткая форма).

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

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

Комментарии

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

Формат Формат сборки Описание
ДЕ <int8> leave.s target Выйдите из защищенной области кода в короткой форме.

Для этой инструкции не указано поведение перехода стека.

Инструкция leave.s безоговорочно передает управление переданной целевой инструкции, представленной в виде 1-байтового смещения со знаком от начала инструкции после текущей инструкции.

Инструкция аналогична leave.s инструкцииbr, но ее можно использовать для выхода из tryблока , или catch , filterв то время как обычные инструкции ветви можно использовать только в таком блоке для передачи управления внутри него. Инструкция leave.s очищает стек вычислений и гарантирует выполнение соответствующих окружающих finally блоков.

Вы не можете использовать инструкцию leave.s для выхода из finally блока. Чтобы упростить создание кода для обработчиков исключений, в блоке catch допустимо использовать leave.s инструкцию для передачи управления любой инструкции в связанном try блоке.

Если инструкция содержит один или несколько кодов префикса, элемент управления можно передать только первому из этих префиксов.

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

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