OpCodes.Leave フィールド

定義

コードの保護された領域を終了し、無条件に特定のターゲット命令に制御を転送します。

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 

フィールド値

注釈

次の表に、命令の 16 進数および Microsoft Intermediate Language (MSIL) アセンブリ形式と、簡単なリファレンス概要を示します。

フォーマット アセンブリ形式 Description
Dd <int32> 残す target コードの保護された領域を終了します。

この命令にはスタック遷移動作が指定されません。

leave命令は、現在の命令に続く命令の先頭からの 4 バイト符号付きオフセットとして表される特定のターゲット命令に無条件に制御を転送します。

leave命令はbr命令に似ていますが、tryfilter、またはcatchブロックを終了するために使用できますが、通常の分岐命令は、そのようなブロック内で制御を転送する場合にのみ使用できます。 leave命令によって評価スタックが空になり、周囲の適切なfinally ブロックが確実に実行されます。

leave ブロックを終了するためにfinally命令を使用することはできません。 例外ハンドラーのコード生成を容易にするために、catch ブロック内から leave 命令を使用して、関連付けられている try ブロック内の任意の命令に制御を転送することが有効です。

命令に 1 つ以上のプレフィックス コードがある場合、制御はこれらのプレフィックスの先頭にのみ転送できます。

次の Emit メソッドオーバーロードでは、 leave オペコードを使用できます。

適用対象