OpCodes.Leave Поле
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выполняет выход из защищенной области кода с безусловной передачей управления указанной конечной инструкции.
public: static initonly System::Reflection::Emit::OpCode Leave;
public static readonly System.Reflection.Emit.OpCode Leave;
staticval mutable Leave : System.Reflection.Emit.OpCode
Public Shared ReadOnly Leave As OpCode
Значение поля
Комментарии
В следующей таблице приведен шестнадцатеричный формат инструкции и формат сборки MSIL, а также краткая справочная сводка:
Формат | Формат сборки | Описание |
---|---|---|
DD <int32 > |
Оставить target |
Завершает защищенную область кода. |
Для этой инструкции не указано поведение перехода стека.
Инструкция leave
безоговорочно передает управление конкретной целевой инструкции, представленной в виде 4-байтового смещения со знаком от начала инструкции после текущей инструкции.
Инструкция аналогична leave
инструкцииbr
, но ее можно использовать для выхода из try
блока , или catch
, filter
в то время как обычные инструкции ветви можно использовать только в таком блоке для передачи управления внутри него. Инструкция leave
очищает стек вычислений и гарантирует выполнение соответствующих окружающих finally
блоков.
Вы не можете использовать инструкцию leave
для выхода из finally
блока. Чтобы упростить создание кода для обработчиков исключений, в блоке catch допустимо использовать leave
инструкцию для передачи управления любой инструкции в связанном try
блоке.
Если инструкция содержит один или несколько кодов префикса, элемент управления можно передать только первому из этих префиксов.
Emit Следующие перегрузки методов могут использовать leave
код операции: