此页面有用吗?
您对此内容的反馈非常重要。 请告诉我们您的想法。
更多反馈?
1500 个剩余字符
MSDN Library
信息
您所需的主题如下所示。但此主题未包含在此库中。

OpCodes.Conv_I2 字段

2013/12/13

将位于计算堆栈顶部的值转换为 int16,然后将其扩展(填充)为 int32

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

public static readonly OpCode Conv_I2

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

Format

汇编格式

说明

68

conv.i2

转换为 int16,并将 int32 推送到堆栈上。

堆栈转换行为依次为:

  1. value 被推送到堆栈上。

  2. 从堆栈中弹出 value,然后尝试执行转换操作。

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

conv.i2 操作码将位于堆栈顶部的 value 转换为在操作码中指定的类型,然后将转换后的值留在堆栈的顶部。 小于 4 个字节的整数值在加载到计算堆栈时被扩展为 int32(除非使用 conv.iconv.u,这种情况下结果也是 native int)。 将浮点值转换为 F 类型。

从浮点数向整数值的转换将向零截断数字。 从 float64float32 转换时,可能丢失精度。 如果 value 太大,不能适合 float32 (F),则返回正无穷大(如果 value 为正)或负无穷大(如果 value 为负)。 如果在将一个整数类型转换为另一个整数类型时发生溢出,则截断高序位字节。 如果结果小于 int32,则带符号扩展此值以填充空位。

如果在将浮点类型转换为整数类型时发生溢出,则返回值是未指定的。

使用此字段时不会引发任何异常。 有关在结果类型无法正确表示结果值时将引发异常的等效指令,请参见 Conv_Ovf_I2Conv_Ovf_I2_Un

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

  • ILGenerator.Emit(OpCode)

Windows Phone OS

受以下版本支持: 8.0, 7.1

Windows Phone

Microsoft 正在进行一项网上调查,以了解您对 MSDN 网站的意见。 如果您选择参加,我们将会在您离开 MSDN 网站时向您显示该网上调查。

是否要参加?
显示:
© 2015 Microsoft