OpCodes.Leave_S 字段
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
退出受保护的代码区域,无条件地将控制转移到目标指令(简短形式)。
public: static initonly System::Reflection::Emit::OpCode Leave_S;
public static readonly System.Reflection.Emit.OpCode Leave_S;
staticval mutable Leave_S : System.Reflection.Emit.OpCode
Public Shared ReadOnly Leave_S As OpCode
字段值
注解
下表列出了指令的十六进制和Microsoft中间语言(MSIL)程序集格式,以及简短的参考摘要:
| Format | 程序集格式 | Description |
|---|---|---|
德 <int8> |
leave.s target |
退出受保护的代码区域(短格式)。 |
没有为此指令指定的堆栈转换行为。
指令 leave.s 无条件地将控制权转移到传递的目标指令,该指令表示为 1 字节的有符号偏移量,该偏移量从指令的开头遵循当前指令。
指令 leave.s 类似于 br 指令,但它可用于退出 try或 filter块, catch 而普通分支指令只能在此类块中使用来传输控件。 指令 leave.s 会清空评估堆栈,并确保执行相应的周围 finally 块。
不能使用 leave.s 指令退出 finally 块。 为了简化异常处理程序的代码生成,它从 catch 块内部有效,以使用 leave.s 指令将控件传输到关联 try 块中的任何指令。
如果指令具有一个或多个前缀代码,则控件只能传输到这些前缀中的第一个。
以下 Emit 方法重载可以使用 leave.s 操作码: