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

In der folgenden Tabelle sind das Hexadezimal- und Microsoft MSIL-Assemblyformat (Intermediate Language) der Anweisung zusammen mit einer kurzen Referenzzusammenfassung aufgeführt:

Format Assemblyformat Description
DD <int32> Verlassen target Beendet einen geschützten Codebereich.

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

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

Die leave Anweisung ähnelt der br Anweisung, kann jedoch verwendet werden, um ein try, filteroder block zu beenden, catch während die normalen Verzweigungsanweisungen 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 sie innerhalb eines Catch-Blocks gültig, um eine Anweisung zum Übertragen eines leave Steuerelements auf eine beliebige Anweisung innerhalb des zugeordneten try Blocks zu verwenden.

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

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

Gilt für: