OpCodes.Leave_S 字段

定义

退出受保护的代码区域,无条件将控制转移到目标指令(缩写形式)。

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) 程序集格式,以及简短的参考摘要:

格式 程序集格式 说明
德 <int8> leave.s target 退出代码的受保护区域(短格式)。

没有为此指令指定堆栈转换行为。

指令 leave.s 无条件地将控制权转移到传递的目标指令,表示为从当前指令的指令开头的 1 字节有符号偏移量。

指令leave.s类似于 br 指令,但它可用于退出 try、 或 catch 块,filter而普通分支指令只能在此类块中使用,以转移其中的控制权。 指令 leave.s 清空评估堆栈并确保执行适当的周围 finally 块。

不能使用 leave.s 指令退出 finally 块。 为了简化异常处理程序的代码生成,从 catch 块内使用 leave.s 指令将控制权转移到关联 try 块内的任何指令是有效的。

如果指令具有一个或多个前缀代码,则控制权只能转移到这些前缀中的第一个。

以下 Emit 方法重载可以使用 leave.s opcode:

适用于