OpCodes.Ckfinite 字段


如果值不是有限数,则引发 ArithmeticExceptionThrows ArithmeticException if value is not a finite number.

public: static initonly System::Reflection::Emit::OpCode Ckfinite;
public static readonly System.Reflection.Emit.OpCode Ckfinite;
 staticval mutable Ckfinite : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ckfinite As OpCode 



下表列出了指令的十六进制和 Microsoft 中间语言(MSIL)程序集格式以及简短的参考摘要:The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

格式Format 程序集格式Assembly Format 说明Description
C3C3 ckfiniteckfinite 如果值不是有限数,则引发 ArithmeticExceptionthrow ArithmeticException if value is not a finite number.

堆栈转换行为顺序如下:The stack transitional behavior, in sequential order, is:

  1. value 推送到堆栈上。value is pushed onto the stack.

  2. 从堆栈中弹出 value,并对其执行 @no__t 指令。value is popped from the stack and the ckfinite instruction is performed on it.

  3. 如果未引发异常,则将 value 推送回堆栈。value is pushed back onto the stack if no exception is thrown.

如果 value (浮点数)为 "不是数字" 值(NaN)或 +- 无穷值,则 ckfinite instruction 会引发 ArithmeticExceptionThe ckfinite instruction throws ArithmeticException if value (a floating-point number) is either a "not a number" value (NaN) or a +- infinity value. @no__t 如果未引发异常,则将值保留在堆栈上。Ckfinite leaves the value on the stack if no exception is thrown. 如果 value 不是浮点数,则不指定执行。Execution is unspecified if value is not a floating-point number.

如果 value 不是 "normal" 数字,则会引发 ArithmeticExceptionArithmeticException is thrown if value is not a 'normal' number.

请注意,特殊异常或 ArithmeticException 的派生类可能更适用,将错误值传递到异常处理程序。Note that a special exception or a derived class of ArithmeticException may be more appropriate, passing the incorrect value to the exception handler.

以下 @no__t 0 方法重载可以使用 @no__t 操作码:The following Emit method overload can use the ckfinite opcode:

  • ILGenerator.Emit(OpCode)ILGenerator.Emit(OpCode)