byte b = byte.MaxValue;

b++;

Console.WriteLine("b:"+b);

这段代码运行后会显示b的值为0,因为byte的最大数是255,超过这个值会导致溢出,得到0。

为此C#提供了checked运算符来执行溢出检查,如果溢出则会抛出异常,设置方式有两种。

一种是使用checked运算符:

checked
 {
        b++;

 }

还有一种方法是在编译器中进行设置:

在项目右击,单击属性->生成->高级,勾选检查上溢和下溢,如图所示(VS2017)

checked和unchecked运算符

这样就能检查除了标记unchecked运算符以外的代码了!

unchecked
{
         b++;//不会被检查溢出

}

要注意的是编译器默认是unchecked模式,因为执行溢出检查会消耗性能。

相关文章:

  • 2021-07-28
  • 2022-12-23
  • 2021-07-29
  • 2022-02-13
  • 2022-12-23
  • 2021-07-14
  • 2021-11-01
  • 2021-04-11
猜你喜欢
  • 2021-12-19
  • 2021-10-21
  • 2021-11-05
  • 2022-01-23
  • 2021-08-27
  • 2022-01-18
  • 2022-12-23
相关资源
相似解决方案