内容简介:上述编译通过,而且运行还不会报错,只是结果是:原来它是翻过去,又从 int 的最小值开始了。
int m = int.MaxValue + 1;
如上代码,直接编译通不过。但看下面的代码就不一样了:
int m = int.MaxValue; int n = m + 1; int o = m + 2; int p = m + 3; Console.WriteLine(m); Console.WriteLine(n); // int.MinValue Console.WriteLine(o); Console.WriteLine(p);
上述编译通过,而且运行还不会报错,只是结果是:
- 2147483647
- -2147483648
- -2147483647
- -2147483646
原来它是翻过去,又从 int 的最小值开始了。
如何避免这种情况呢?使用 checked。
// 单行可以这么做: int n = checked(m + 1); // 多行可以这么做: checked { int o = m + 2; int p = m + 3; }
当越界时,会触发溢出异常。要注意:checked {} 虽然可以包含多句代码,但是也将内部变量的作用域限定在了 {} 范围。
还有一个unchecked,语法类似,没什么用,因为默认就是 unchecked 的。可能某些设置会改变默认行为吧,有了 unchecked 就是要强制允许溢出。
以上所述就是小编给大家介绍的《关于 CSharp 值-CSharp checked 关键词》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 数据仓库关键词
- 使用Tensorflow识别语音关键词
- 我们2018年的关键词-坚持学习
- Sphinx源码学习笔记(二):查询关键词
- 2018年光通信行业年度十大关键词
- AAAI 2021:关键词指导的神经对话模型
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Responsive Web Design
Ethan Marcotte / Happy Cog / 2011-6 / USD 18.00
From mobile browsers to netbooks and tablets, users are visiting your sites from an increasing array of devices and browsers. Are your designs ready? Learn how to think beyond the desktop and craft be......一起来看看 《Responsive Web Design》 这本书的介绍吧!