CheckedAndUnchecked

Checked块,如果在运行时发生一次溢出的赋值,就会引发一个异常。

Unchecked块,在运行时发生一次溢出的赋值,会将数据阶段,而不是为块中的赋值引发异常。

下面我们一起一个例子,来证实以上描述:

 1 using System;
 2 
 3 namespace CheckAndUncheck
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             unchecked
10             {
11                 int n = int.MaxValue;
12                 n = n + 1;
13                 Console.WriteLine("取最大INT型的值为:{0},加一后的值为:{1}",int.MaxValue,n);
14             }
15 
16             checked
17             {
18                 int n = int.MaxValue;
19                 n = n + 1;
20                 Console.WriteLine("取最大INT型的值为:{0},加一后的值为:{1}", int.MaxValue, n);
21             }
22         }
23     }
24 }

运行结果如下:

1 取最大INT型的值为:2147483647,加一后的值为:-2147483648
2 
3 未处理的异常:  System.OverflowException: 算术运算导致溢出。
4    在 CheckAndUncheck.Program.Main(String[] args) 位置 D:\小项目练手\本质论\Chec
5 kAndUncheck\Program.cs:行号 19
6 请按任意键继续. . .

 

posted @ 2013-01-18 09:46  天之涯,海之角  阅读(148)  评论(0编辑  收藏  举报