在C#中,整数int32的取值为-2147483648~2147473647(可以通过int.MaxValue和int.MinValue获得)当超出这个范围后,编译器不会进行检查,仍然会进行运算,但得到的结果是错误的。所以,有的时候使用checked进行整数溢出的检测。也可以通过unchecked进行,检测的忽略。 checked和unchecked有两种写法:

  1. 对单独的一个算术表达式进行检测:
int max = int.MaxValue;
int willThrow = checked(max++);
对于++,+=等算术运算符都是可用的,但需要一个变量来进行返回值的接收。
  1. 对一个语句块进行检测:
int max = int.MaxValue;
checked{
max++;
}
check和unchecked的一些特性:
1. 只能对整数进行操作,所以除了int和long之外的类型变量不可以使用
2. 当对语句块进行检测的时候,只有包含在语句块中的代码才会对其进行检测。语句块中调用的方法就不会被检测。
除了使用关键字进行整数溢出的检测,还可以开启系统内的编辑器选项来进行全局的检测设置:
  1. 选中项目,右键菜单中点击属性
  1. 选中页签Build,点击右下角Advanced
  1. 然后在弹出的面板中,勾选检测选项就可以实现全局的溢出检测了

最新文章

  1. iOS通知
  2. 5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq
  3. jQuery Mobile 移动开发中的日期插件Mobiscroll使用说明
  4. cakePHP的controller回调
  5. [操作系统实验lab2]实验报告
  6. Linux之Sed命令详解(总结一些实用例子)
  7. 010-python基础-数据类型-字符串操作
  8. OPENGL画图类库
  9. PDF模板报表导出(Java+Acrobat+itext)
  10. Activity 【生命周期】
  11. div整体布局分析
  12. AllocateHWnd的作用,以及它在控件里的使用
  13. 定时器Timer不定时
  14. 利用wsdl.exe自动将wsdl文档转换为C#代码
  15. Rsync + Lsyncd服务实现文件实时同步/备份
  16. Linux 小知识翻译 - 「邮件服务器」
  17. 洛谷P2918 [USACO08NOV]买干草(一道完全背包模板题)
  18. java之搭建webservice服务端
  19. msvc命令行cl编译c程序问题及解决
  20. JavaScript使用浏览器内置XML解析器解析DOM对象

热门文章

  1. mybatis分页未明确的列定义
  2. 关于github报错 ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository.
  3. laravel常用响应操作
  4. 调用WebService接口返回字符串
  5. python中导包简介
  6. Mac出现程序闪退的解决方案
  7. MySQL安装及基础命令
  8. ie中兼容性问题
  9. solr系列之solr-5.5.5 window单机版默认Jetty安装
  10. Leetcode题目104.二叉树的最大深度(DFS+BFS简单)