构建高质量的C#代码
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

代码 2-5:整数溢出(<OverflowDemo>\Program.cs)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OverflowDemo
{
class Program
    {
    static void Main(string[] args)
        {
        int x=20000000;
            int y = 100000;
            int result = x * y;
            Console.WriteLine(result);
        }
    }
}

会是2000000000000 吗?int类型好像不能存放这么大的数值!实际的运行结果是-1454759936,结果哪来的?这就是因为发生了整数的溢出,这个结果实际上对于我们是没有意义的,甚至比没有结果更没有意义。

在大多数情况下,程序计算结果的正确性非常重要,这时我们必须确保每一步运算的正确性,为了防止像上面那样由于整数溢出而产生的结果错误,我们可以使用checked运算符来检查可能的整数溢出现象,如代码2-6所示,我们使用checked运算符修改了代码2-5中的内容。