• 浅谈checked和unchecked


    在阅读源码时,发现有段代码为 unchecked包括,单忽然忘记了 unchecked是干什么的了,遇事不决问google,将此纪录一下,以便温习。

     首先,来简单说一下他们的作用:

    checked:打开运算溢出检查

    unchecked:关闭运算溢出检查

    首先,要知道int类型在C#中是一个32位的数,由此可以知道int类型的取值范围是 -2147483648~2147483647,当要使用int的最小值或最大值时,可以使用int.MinValue和int.MaxValue这两个属性。

    在这里,我们要讨论的也是int类型溢出,事实上,当int型中的最大+1就会变成最小值,当我们希望这个int值不会超过限制时,可以通过手动启用溢出检查功能。

    如何启动呢?

    在VS中是允许设置项目属性来启用或禁止运算溢出检查的。解决方案资源管理器=>右击选择属性=>在属性对话框选择生成=>单机右下角的高级=>在高级对话框中,勾选【检查算数溢出】选项,如下图所示

    同样的道理,在代码中,可以使用unchecked和checked关键字,来选择性的打开和关闭代码中一个特定部分的整数溢出检查,这些关键字将覆盖项目的编译器选项。

    使用了unchecked就不会强制检查溢出的代码块,也就不会抛出OverflowException这个异常了。

    需要注意的是:只有在checked块中的整数运算才会检查,对于块中的方法调用,不会检查所调用方法中的整数运算。

    努力,不是为了要感动谁,也不是要做给哪个人看,而是要让自己随时有能力跳出自己厌恶的圈子,并拥有选择的权利。记住,用自己喜欢的方式过一生。
  • 相关阅读:
    i=i+2 与i+=2
    如何浏览github上所有的公开的项目?
    在ubuntu怎样修改默认的编码格式
    链式结构实现堆排序
    直接插入排序的哨兵的作用
    lk进kernel
    比劫劫财引发的灾如何化解呢?
    java:Map借口及其子类HashMap二
    java:Map借口及其子类
    java:集合输出之foreach输出三
  • 原文地址:https://www.cnblogs.com/xiaomowang/p/14417005.html
Copyright © 2020-2023  润新知