OpCodes.Ckfinite 字段

定义

如果值不是有限数,则引发 ArithmeticException

C#
public static readonly System.Reflection.Emit.OpCode Ckfinite;

字段值

注解

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

格式 程序集格式 说明
C3 ckfinite 如果值不是有限数,则引发 ArithmeticException

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

  1. value 被推送到堆栈上。

  2. value 从堆栈中弹出, ckfinite 并针对该堆栈执行指令。

  3. value 如果未引发异常,则会推送回堆栈。

ckfinite instruction如果 value (浮点数) 是 NaN) 或无穷大值 (“非数字”值,+-则引发 ArithmeticExceptionCkfinite 如果未引发异常,则保留堆栈上的值。 如果 value 不是浮点数,则执行未指定。

ArithmeticException 如果 value 不是“正常”数字,则引发 。

请注意,特殊异常或派生类 ArithmeticException 可能更合适,将不正确的值传递给异常处理程序。

以下 Emit 方法重载可以使用 ckfinite 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