时间:2021-05-19
在C#中有一个关键字checked,它用来判断当前上下文中的数值运算和数值转换是否会溢出。如是是常量溢出,那在编译时就能发现;如果是变量溢出,那在运行时会抛出OverflowException。
数值运算有:++ — - (unary) + - * /
有了这个就不用担心数据溢出了。
checked
checked 有两种使用方法:
1.作为操作符来使用
复制代码 代码如下:
int a = int.MinValue;
int c = checked(a--);
执行的时候会抛出异常:
unchecked
和checked对应,还有一个unchecked关键字,用来取消检查。
也是两种使用;
1.作为运算符:
复制代码 代码如下:
int a = int.MinValue;
int c = unchecked(a--);
这样子就不会抛异常了
2.检查一大块代码
复制代码 代码如下:
unchecked
{
int a = int.MinValue;
int c = a--;
}
也不抛异常:
2。点击“Build”,再点击“Advanced”
3。在打开的对话框中,把“Check for arithmetic overflow/underflow”打上勾
几个注意
1.checked语句只对当前上下文中的代码有效,即不对调用的函数内部做检查。
复制代码 代码如下:
static void Main(string[] args)
{
checked
{
TestFun();
}
}
static void TestFun()
{
int a = int.MinValue;
int c = a--;
}
这段代码中。不会跑异常,因为checked关键字没有影响到TestFun内部。如果需要这么做的话,要么在TestFun内部加checked关键字,要么打开全局开关(加编译参数/checked或者VS中设置)。
2.checked,unchecked关键字不检查左移和右移是否溢出。
复制代码 代码如下:
static void Main(string[] args)
{
checked
{
int a = int.MinValue;
int c = a>>1;
}
}
执行不会抛异常:
3.为了性能考虑,建议Debug时做检查,Release时不做检查。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
checked和unchecked关键字用来限定检查或者不检查数学运算溢出的;如果使用了checked发生数学运算溢出时会抛出OverflowException
问题:系统要求导入40万条excel数据,采用poi方式,服务器出现内存溢出情况。解决方法:由于HSSFWorkbookworkbook=newHSSFWork
本文实例讲述了PHP实现SQL语句格式化功能的方法。分享给大家供大家参考,具体如下:一、问题:要求使用php实现针对sql语句的格式化功能二、解决方法:这里使用
手机酷狗无法连接网络的解决方法如下: 1、检查是否设置了防止个别应用程序使用手机流量或WLAN上网。 2、若手机使用的是移动数据上网,请切换上网接入点尝试。
在@Query注解注释的JPQL语句中写limit语句是会报错的unexpectedtoken:limitnearline....解决方法是讲@Query注解中