OpCodes.Conv_Ovf_U2_Un 字段

定义

将位于计算堆栈顶部的无符号值转换为 unsigned int16 并将其扩展为 int32,并在溢出时引发 OverflowException

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

字段值

注解

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

格式 程序集格式 说明
87 conv.ovf.u2.un 将无符号值转换为 unsigned int16 堆栈上的 (作为 int32) ,并在溢出时引发异常。

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

  1. value 被推送到堆栈上。

  2. value 从堆栈中弹出,并尝试转换操作。 如果发生溢出,则会引发异常。

  3. 如果转换成功,则生成的值将推送到堆栈上。

操作 conv.ovf.u2.un 代码将 value 堆栈顶部的 转换为操作码中指定的类型,并将转换后的值放在堆栈顶部。 如果值太大或太小,无法由目标类型表示,则会引发异常。

从浮点数到整数值的转换会将数字截断为零。 请注意,当小于 4 个字节 int32 的整数值加载到计算堆栈 (时,除非 conv.ovf.i 使用 或 conv.ovf.u ,在这种情况下,结果也会 native int) 。

OverflowException 如果结果不能在结果类型中表示,则引发 。

以下 Emit 方法重载可以使用 conv.ovf.u2.un 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