OpCodes.Leave-Feld
Beendet einen geschützten Codebereich, wobei die Steuerung bedingungslos an eine bestimmte Zielanweisung übertragen wird.
Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Shared ReadOnly Leave As OpCode
'Usage
Dim value As OpCode
value = OpCodes.Leave
public static readonly OpCode Leave
public:
static initonly OpCode Leave
public static final OpCode Leave
public static final var Leave : OpCode
Hinweise
In der folgenden Tabelle werden das hexadezimale und das Assemblyformat der MSIL (Microsoft Intermediate Language) jeweils mit einer Kurzreferenz aufgeführt:
Format |
Assemblyformat |
Beschreibung |
---|---|---|
DD < int32 > |
leave target |
Beendet einen geschützten Codebereich. |
Für diese Anweisung sind im Stapel keine Zustandswechsel angegeben.
Die leave-Anweisung überträgt die Steuerung bedingungslos an die angegebene Zielanweisung, die als 4-Byte-Offset mit Vorzeichen vom Beginn der Anweisung dargestellt wird, die auf die aktuelle Anweisung folgt.
Die leave-Anweisung ähnelt der br-Anweisung. Mit ihr kann jedoch ein try-Block, ein filter-Block oder ein catch-Block beendet werden, während mit normalen Verzweigungsanweisungen lediglich die Steuerung in einem solchen Block übertragen werden kann. Die leave-Anweisung leert den Auswertungsstapel und stellt sicher, dass die entsprechenden umgebenden finally-Blöcke ausgeführt werden.
Mit einer leave-Anweisung können Sie keinen finally-Block beenden. Um die Codegenerierung für Ausnahmehandler zu erleichtern, kann in einem catch-Block mit einer leave-Anweisung die Steuerung an eine beliebige Anweisung im zugeordneten try-Block übertragen werden.
Wenn eine Anweisung Präfixcodes enthält, kann die Steuerung nur an das erste dieser Präfixe übertragen werden.
Die folgenden Überladungen der Emit-Methode verwenden den leave-Opcode:
- ILGenerator.Emit(OpCode, Label)
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
OpCodes-Klasse
OpCodes-Member
System.Reflection.Emit-Namespace