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等整型运算。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 知识点: 注:int类型默认32位有大小范围 且第一位为符号位 0 为正 1 为负 8.4作业 A:1、风力预警系...
    cGunsNRoses阅读 1,121评论 0 0
  • 对象的创建与销毁 Item 1: 使用static工厂方法,而不是构造函数创建对象:仅仅是创建对象的方法,并非Fa...
    孙小磊阅读 2,031评论 0 3
  • zy1控制台程序新建控制台应用程序名字命名为:helloworldstatic void Main(string[...
    假装我不帅阅读 388评论 0 0
  • 然而,在今天这篇博客中,我们要知道的是,QueueUserWorkItem这个技术存在许多限制。其中最大的问题是没...
    北风知我意阅读 16,074评论 0 2
  • 知识点一、 算数运算符及算术表达式(一) 含义算术运算符: + - * / %(取余数 取模)算术表达式:由算...
    不爱孤单一久也习惯阅读 1,186评论 0 0