OpCodes.Leave_S Campo

Definição

Sai de uma região protegida de código, transferindo incondicionalmente o controlo para uma instrução alvo (forma abreviada).

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 

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
DE <int8> sair.s target Sair de uma região protegida de código, forma abreviada.

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

A leave.s instrução transfere incondicionalmente o controlo para a instrução alvo passada, representada como um deslocamento assinado de 1 byte a partir do início da instrução após a instrução atual.

A leave.s 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.s 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.s 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.s 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.

O seguinte Emit método de sobrecarga pode usar o leave.s opcode:

Aplica-se a