OpCodes.Brtrue_S 字段

定义

如果 valuetrue、非空或非零,则将控制转移到目标指令(短格式)。

public static readonly System.Reflection.Emit.OpCode Brtrue_S;

字段值

注解

下表列出了指令的十六进制和 Microsoft 中间语言 (MSIL) 程序集格式,以及简短的参考摘要:

格式 程序集格式 说明
二 维和 <int8> brtrue.s target

brinst.s target
如果非零 (true) 短形式,则分支到指定偏移量的目标指令。

堆栈过渡行为(按顺序排列)为:

  1. value 由上一个操作推送到堆栈上。

  2. value 从堆栈中弹出;如果 valuetrue,则分支到 target

brtrue.s如果value (类型native int) 为非零true () ,则指令会将控制权转移到指定的目标指令。 如果 value 为零 (false) 下一个指令继续执行。

如果 value 是对象引用 (类型 O) 则 brinst (brtrue 别名) 传输控件(例如,如果它表示对象的实例 (,如果它不是 null 对象引用);请参阅 Ldnull) 。

目标指令表示为从当前指令后面的指令开头的 1 字节有符号偏移量。

如果目标指令具有一个或多个前缀代码,则控件只能转移到这些前缀中的第一个。 此指令无法控制传入和移出 trycatchfilterfinally 块的传输。

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

适用于

产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0