效果图如下:
1.为何要有checked关键字
先来看一段代码:
static void ProcessBytes()
{
byte b1 = 100;
byte b2 = 250;
Console.WriteLine("sum = {0}",sum);//sum的结果本应为350,实际输出为94
}
- 问:为何sum的结果不为350?
- 答:byte类型的值的范围为0~255,b1+b2的值为350,已经超出了byte的存储范围
- 问:为何sum的结果为94?
- 答:sum的值本该为350,而byte类型的值的范围为0~255,一共只有256个位置,sum保存的是溢出值94(350-256=94)
上溢:是当一个超长的数据进入到缓冲区时,超出部分被写入上级缓冲区,上级缓冲区存放的可能是数据、上一条指令的指针,或者是其他程序的输出内容,这些内容都被覆盖或者破坏掉。可见一小部分数据或者一套指令的溢出就可能导致一个程序或者操作系统崩溃。
因此,为了防止出现内存溢出的问题,造成程序崩溃,需要使用Checked关键字
2.checked关键字用法
- 第一种: 使用checked()对一条语句进行溢出检测
static void ProcessBytes()
{
byte b1 = 100;
byte b2