OpCodes.Leave Feld

Definition

Beendet einen geschützten Codebereich, wobei die Steuerung bedingungslos an eine bestimmte Zielanweisung übertragen wird.

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 

Feldwert

Hinweise

Die folgende Tabelle enthält das hexadezimale und Microsoft MSIL-Assemblyformat (Intermediate Language) der Anweisung sowie eine kurze Referenzzusammenfassung:

Format Assemblyformat BESCHREIBUNG
Dd <int32> Verlassen target Beendet einen geschützten Codebereich.

Für diese Anweisung ist kein Stapelübergangsverhalten angegeben.

Die leave -Anweisung überträgt das Steuerelement bedingungslos an die spezifische Zielanweisung, die als 4-Byte-Offset vom Anfang der Anweisung nach der aktuellen Anweisung dargestellt wird.

Die leave Anweisung ähnelt der br -Anweisung, kann jedoch verwendet werden, um einen try- filteroder catch -Block zu beenden, während die normalen Branchanweisungen nur in einem solchen Block verwendet werden können, um die Steuerung darin zu übertragen. Die leave Anweisung leert den Auswertungsstapel und stellt sicher, dass die entsprechenden umgebenden finally Blöcke ausgeführt werden.

Sie können keine leave Anweisung verwenden, um einen finally Block zu beenden. Um die Codegenerierung für Ausnahmehandler zu vereinfachen, ist es in einem Catch-Block gültig, eine Anweisung zum Übertragen des leave Steuerelements auf eine anweisung innerhalb des zugeordneten try Blocks zu verwenden.

Wenn eine Anweisung über einen oder mehrere Präfixcodes verfügt, kann die Steuerung nur auf das erste dieser Präfixe übertragen werden.

Die folgenden Emit Methodenüberladungen können den leave opcode verwenden:

Gilt für: