OpCodes.Leave 字段
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
退出受保护的代码区域,无条件将控制转移到特定目标指令。
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
字段值
注解
下表列出了指令的十六进制和 Microsoft 中间语言 (MSIL) 程序集格式,以及简短的参考摘要:
格式 | 程序集格式 | 说明 |
---|---|---|
Dd <int32 > |
离开 target |
退出代码的受保护区域。 |
没有为此指令指定堆栈转换行为。
指令 leave
无条件地将控制权转移到特定目标指令,表示为从当前指令后面的指令开头的 4 字节有符号偏移量。
指令 leave
类似于 br
指令,但它可用于退出 try
、 filter
或 catch
块,而普通分支指令只能在此类块中使用,以转移其中的控制。 指令 leave
清空计算堆栈并确保执行相应的周围 finally
块。
不能使用 leave
指令退出 finally
块。 为了简化异常处理程序的代码生成,从 catch 块内使用 leave
指令将控制权转移到关联 try
块中的任何指令是有效的。
如果指令具有一个或多个前缀代码,则控制权只能转移到这些前缀中的第一个。
以下 Emit 方法重载可以使用 leave
操作码: