OpCodes.Add 字段

定义

将两个值相加并将结果推送到计算堆栈上。

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

字段值

注解

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

格式 程序集格式 说明
58 add 添加两个数值,返回一个新的数值。

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

  1. value1 被推送到堆栈上。

  2. value2 被推送到堆栈上。

  3. value2value1 从堆栈中弹出; value1 添加到 value2

  4. 结果将推送到堆栈上。

未检测到整数操作溢出, (正确溢出处理,请参阅 Add_Ovf) 。

整数加法换行,而不是饱和。 例如,假设 8 位整数,其中 value1 设置为 255 且 value2 设置为 1,则包装结果为 0 而不是 256。

浮点溢出返回 +inf (PositiveInfinity) 或 -inf (NegativeInfinity) 。

下表列出了可接受的操作数类型及其相应的结果数据类型。 如果特定类型组合没有条目 (例如 int32floatint32int64) ,则它是无效的 Microsoft 中间语言 (MSIL) 并生成错误。

操作数 value1 类型 value2 类型 结果类型
add int32 int32 int32
add int32 native int native int
add int32 & &
add int32 * *
add int64 int64 int64
add native int int32 native int
add native int native int native int
add native int & &
add native int * *
add F F F
add & int32 &
add & native int &
add * int32 *
add * native int *

以下 Emit 方法重载可以使用 add 操作码:

适用于

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