OpCodes.Leave Fält
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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: