コードの保護領域を終了し、制御を特定のターゲット命令に無条件で転送します。
Public Shared ReadOnly Leave As OpCode
[C#]
public static readonly OpCode Leave;
[C++]
public: static OpCode Leave;
[JScript]
public static var Leave : OpCode;
解説
命令の 16 進数の形式、MSIL (Microsoft Intermediate Language) アセンブリ形式、および簡単な説明の一覧を次の表に示します。
形式 | アセンブリ形式 | 説明 |
---|---|---|
DD < int32 > | leave target | コードの保護領域を終了します。 |
この命令には、スタックの遷移動作は指定されていません。
leave 命令は、現在の命令に続く次の命令の先頭からの 4 バイト符号付きオフセットとして表され、特定のターゲット命令に無条件で制御を転送します。
leave 命令は、 br 命令に似ています。この命令が try、filter、または catch の各ブロックを終了するために使用できる命令であるのに対し、通常の分岐命令は、このようなブロック内の制御を転送するためにブロック内だけで使用できます。 leave 命令は、評価スタックを空にし、適切な前後の finally ブロックが実行されるようにします。
leave 命令を使用して finally ブロックを終了することはできません。例外ハンドラのコード生成を簡単にするために、catch ブロック内から、 leave 命令を使用して、関連付けられている try ブロック内の任意の命令に制御を転送できます。
命令に 1 つ以上のプリフィックス コードがある場合は、最初のプリフィックスだけに制御を転送できます。
leave オペコードを使用できる Emit コンストラクタ オーバーロードを次に示します。
- ILGenerator.Emit(OpCode, Label)
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ