checked(expression)与unchecked(expression)的区别

来源:百度知道 编辑:UC知道 时间:2024/07/02 21:19:22
C#中,关于类型转换的部分有一个问题不明白,那就是

checked(expression)
unchecked(expression)
的区别,适用的情况,最好有小程序例子
最好有示例,比如说
checked(expression)
unchecked(expression)
分别使用,如果有溢出时,得到的结果是什么,如何使用等等。

short a = 32767;
short b = 32767;
short c = (short)(a + b);
Console.WriteLine(c);
结果c是-2,显然不对,关键是程序运行没提示错误,很可能处理结果bug出现。

try
{
short a = 32767;
short b = 32767;
short c = checked((short)(a + b));
Console.WriteLine(c);
}
catch (OverflowException e)
{
Console.WriteLine(e.Message);
}
用checked检查错误。

checked 和Unchecked 是在类型转化中 看是否有数据发生溢出
unchecked(表达式) 发生溢出也不管