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)程序集格式,以及简短的参考摘要:
| Format | 程序集格式 | Description |
|---|---|---|
Dd <int32> |
离开 target |
退出受保护的代码区域。 |
没有为此指令指定的堆栈转换行为。
指令 leave 无条件地将控制转移到特定的目标指令,表示为 4 字节的有符号偏移量,该偏移量从指令开头遵循当前指令。
指令 leave 类似于 br 指令,但它可用于退出 try或 filter块, catch 而普通分支指令只能在此类块中使用来传输控件。 指令 leave 会清空评估堆栈,并确保执行相应的周围 finally 块。
不能使用 leave 指令退出 finally 块。 为了简化异常处理程序的代码生成,它从 catch 块内部有效,以使用 leave 指令将控件传输到关联 try 块中的任何指令。
如果指令具有一个或多个前缀代码,则控件只能传输到这些前缀中的第一个。
以下 Emit 方法重载可以使用 leave 操作码: