checked和unchecked整数运算

作用

C#的int是32位大小。由于int大小固定,它支持的值的范围:-2147483648~2147483647.

如果当前值已经是 2147473647的一个int上加1会发生什么?

1.得到错误值,即溢出,会得到-2148483648这个错误值

2.如果设置溢出检查,会抛出异常

C#提供了checked和unchecked关键字来控制以上行为

checked语句

int number = int.MaxValue;

checked//抛出OverflowException异常

{

    int willThrow = number++;

    Console.WriteLine("永远执行不到这里");

}

unchecked

{

    int wontThrow = number++;

    Console.WriteLine(“会执行到这里");

}

checked表达式

int wontThrow = unchecked(int.MaxValue + 1);//不抛出异常

int willThrow = checked(int.MaxValue + 1);//抛出异常

注意

不能使用checked和unchecked关键字控制浮点(非整数)运算。checked和unchecked关键字只适合int和long等整型运算。

你可能感兴趣的:(checked和unchecked整数运算)