OpCodes.Conv_Ovf_U2 字段

定义

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

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

字段值

注解

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

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

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

  1. value 被推送到堆栈上。

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

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

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

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

OverflowException 如果结果无法在结果类型中表示,则引发 。

以下 Emit 方法重载可以使用 conv.ovf.u2 操作码:

适用于

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