OpCodes.Leave_S Campo

Definição

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

public static readonly System.Reflection.Emit.OpCode Leave_S;

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

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

A leave.s instrução transfere incondicionalmente o controle para a instrução de destino passada, representada como um deslocamento assinado de 1 byte desde o 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 trybloco , filterou catch , enquanto as instruções de branch comuns só podem ser usadas nesse bloco para transferir o controle dentro dele. A leave.s 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.s 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.s 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.

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

Aplica-se a

Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0