词条 | C# unchecked |
释义 | 对于因为整数类型参与算术操作和窄化类型转换时产生的“溢出异常”——System.OverflowException,在某些算法来讲不算真正的“异常”,相反这种溢出常常为程序所用。C#中checked和unchecked操作符用于整形算术运算时控制当前环境中的溢出检查。下列运算参与了checked和unchecked检查: 预定义的++和--:一元操作符,当其操作数类型为整型时。 预定义的-:一元操作符,当其操作数为整型数时。 预定义的+、-、*、/等二元操作符,当两个操作数数据类型都是整型。 从一种整型到另一种整型地显式数据转换。 当上述运算之一产生一个目标类型无法表示的大数时,在使用了checked操作符的表达式中,如果运算是一个常量表达式,则产生运行时错误,否则,当运行时执行该运算时会溢出异常。而在使用了uncheced操作符的表达式中,返回值被截掉不符合目标类型的高位。 如果非常量表达式没有被任何checked或unchecked操作符或语句所包括时,运行时计算该表达式的值,是否会产生溢出,依据于外部因素,如编译器状态、执行环境参数等。而对于一个常量表达式而言,总是默认为进行溢出检查。 使用了unchecked操作符后,溢出的发生不会导致编译错误。但这往往会出现一些不可预期的结果,所以使用unchecked操作符要小心。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。