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 请按任意键继续. . .