OpCodes.Leave Fält

Definition

Avslutar en skyddad kodregion och överför ovillkorligt kontrollen till en specifik målinstruktion.

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 

Fältvärde

Kommentarer

I följande tabell visas instruktionens sammansättningsformat för hexadecimalt och Microsoft mellanliggande språk (MSIL), tillsammans med en kort referenssammanfattning:

Format Sammansättningsformat Description
DD <int32> Lämna target Avslutar en skyddad kodregion.

Inget stackövergångsbeteende har angetts för den här instruktionen.

Instruktionen leave överför villkorslöst kontrollen till den specifika målinstruktionen, som representeras som en signerad förskjutning på 4 byte från början av instruktionen enligt den aktuella instruktionen.

Instruktionen leave liknar instruktionen br , men den kan användas för att avsluta ett try, filter, eller catch -block, medan vanliga greninstruktioner endast kan användas i ett sådant block för att överföra kontrollen inom den. Instruktionen leave tömmer utvärderingsstacken och säkerställer att lämpliga omgivande finally block körs.

Du kan inte använda en leave instruktion för att avsluta ett finally block. För att underlätta kodgenerering för undantagshanterare är det giltigt inifrån ett catch-block att använda en leave instruktion för att överföra kontroll till alla instruktioner i det associerade try blocket.

Om en instruktion har en eller flera prefixkoder kan kontrollen bara överföras till det första av dessa prefix.

Följande Emit metodöverlagringar kan använda leave opcode:

Gäller för