Compartir a través de


OpCodes.Leave Campo

Definición

Sale de una región de código protegida y transfiere el control incondicionalmente a una instrucción máquina 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 de campo

Comentarios

En la tabla siguiente se muestra el formato de ensamblado hexadecimal y lenguaje intermedio de Microsoft (MSIL), junto con un breve resumen de referencia:

Formato Formato de ensamblado Descripción
DD <int32> Salir target Sale de una región protegida de código.

No hay ningún comportamiento de transición de pila especificado para esta instrucción.

La leave instrucción transfiere incondicionalmente el control a la instrucción de destino específica, representada como un desplazamiento con signo de 4 bytes desde el principio de la instrucción después de la instrucción actual.

La leave instrucción es similar a la br instrucción , pero se puede usar para salir de un trybloque , filtero , mientras catch que las instrucciones de rama normal solo se pueden usar en este bloque para transferir el control dentro de ella. La leave instrucción vacía la pila de evaluación y garantiza que se ejecuten los bloques circundantes finally adecuados.

No puede usar una leave instrucción para salir de un finally bloque. Para facilitar la generación de código para los controladores de excepciones, es válido desde dentro de un bloque catch para usar una leave instrucción para transferir el control a cualquier instrucción dentro del bloque asociado try .

Si una instrucción tiene uno o varios códigos de prefijo, el control solo se puede transferir al primero de estos prefijos.

Las sobrecargas de método siguientes Emit pueden usar el leave código de operación:

Se aplica a