OpCodes.Leave Campo
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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 com sinal de 4 bytes desde o início da instrução após a instrução atual.
A leave
instrução é semelhante à br
instrução , mas pode ser usada para sair de um try
bloco , filter
ou catch
, enquanto as instruções de branch comuns só podem ser usadas nesse bloco para transferir o controle dentro dele. 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, é válido de dentro de um bloco catch 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: