使用英语阅读

通过


OpCodes.Ldc_I4 字段

定义

将所提供的 int32 类型的值作为 int32 推送到计算堆栈上。

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

字段值

注解

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

格式 程序集格式 说明
20 <int32> ldc.i4 num 将值 num 推送到堆栈上。

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

  1. num 将推送到堆栈上。

请注意,对于 -128 到 127 的整数,有特殊的短 (,因此) 编码效率更高,尤其是 -1 到 8 的短编码。 所有短编码在堆栈上推送 4 个字节整数。 较长的编码用于 8 字节整数和 4 和 8 字节浮点数,以及不适合短格式的 4 字节值。 有三种方法可将 8 字节整数常量推送到堆栈上

  1. Ldc_I8 必须以 32 位以上的表示的常量使用 指令。

  2. 对于 Ldc_I4 需要 9 到 32 位的常量,请使用指令后跟 Conv_I8

  3. 对于可以用 8 位或更少位表示的常量,请使用后跟 Conv_I8 的短格式指令。

以下 Emit 方法重载可以使用 ldc.i4 操作码:

适用于

产品 版本
.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