导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

OpCodes.Conv_Ovf_U1 字段

2013/12/13

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

Namespace:  System.Reflection.Emit
程序集:  mscorlib(位于 mscorlib.dll 中)

public static readonly OpCode Conv_Ovf_U1

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

Format

汇编格式

说明

B4

conv.ovf.u1

转换为 unsigned int8(在堆栈上为 int32)并在溢出时引发异常。

堆栈转换行为依次为:

  1. value 被推送到堆栈上。

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

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

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

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

如果结果无法用结果类型表示,则会引发 OverflowException

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

  • ILGenerator.Emit(OpCode)

Windows Phone OS

受以下版本支持: 8.0, 7.1

Windows Phone

显示:
© 2014 Microsoft