OpCodes.Leave Campo

Definição

Sai de uma região protegida de código, transferindo o controle incondicionalmente para uma instrução de destino específica.

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 

Valor do campo

OpCode

Comentários

A tabela a seguir lista o formato de assembly hexadecimal e MSIL (Microsoft Intermediate Language) da instrução, juntamente com um breve resumo de referência:

Formatar Formato de assembly Descrição
DD < int32 > Deixar target Sai de uma região protegida de código.

Não há nenhum comportamento de transição de pilha especificado para esta instrução.

A leave instrução transfere incondicionalmente o controle para a instrução de destino específica, representada como um deslocamento assinado por 4 bytes desde o início da instrução seguindo a instrução atual.

A leave instrução é semelhante à br instrução, mas pode ser usada para sair de um filter``try, ou catch bloquear, enquanto as instruções de branch comuns só podem ser usadas nesse bloco para transferir o controle dentro dela. A leave instrução esvazia a pilha de avaliação e garante que os blocos ao redor finally apropriados sejam executados.

Você não pode usar uma leave instrução para sair de um finally bloco. Para facilitar a geração de código para manipuladores de exceção, ela é válida de dentro de um bloco catch para usar uma leave instrução para transferir o controle para qualquer instrução dentro do bloco associado try .

Se uma instrução tiver um ou mais códigos de prefixo, o controle só poderá ser transferido para o primeiro desses prefixos.

As seguintes Emit sobrecargas de método podem usar o leave opcode:

Aplica-se a