OpCodes.Leave Campo

Definição

Sai de uma região protegida de código, transferindo incondicionalmente o controlo para uma instrução alvo 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 de Campo

Observações

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

Formato Formato de Montagem Descrição
DD <int32> Sair target Sai de uma área protegida de código.

Não existe um comportamento de transição de pilha especificado para esta instrução.

A leave instrução transfere incondicionalmente o controlo para a instrução alvo específica, representada como um deslocamento assinado de 4 bytes a partir do 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, filter, ou catch bloco, enquanto as instruções normais de desvio só podem ser usadas nesse bloco para transferir controlo para dentro dele. A leave instrução esvazia a pilha de avaliação e garante que os blocos circundantes finally apropriados são executados.

Não podes usar uma leave instrução para sair de um finally bloco. Para facilitar a geração de código para tratadores de exceções, é válido dentro de um bloco de captura usar uma leave instrução para transferir controlo para qualquer instrução dentro do bloco associado try .

Se uma instrução tiver um ou mais códigos de prefixo, o controlo só pode ser transferido para o primeiro destes prefixos.

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

Aplica-se a