在C#中check和unchecked怎么用?
答案:4 悬赏:60 手机版
解决时间 2021-03-19 17:33
- 提问者网友:欲劫无渡
- 2021-03-19 12:38
在C#中check和unchecked怎么用?
最佳答案
- 五星知识达人网友:忘川信使
- 2021-03-19 13:12
C# 中对算术运算进行溢出检查或忽略溢出检查的关键字
因为通常情况下,VS2010(我用的)是不会进行溢出检查的,在某些可能溢出的地方会因为编译器“聪明”的截取部分高位而导致最后运算结果出现错误所以需要进行检查,而某些地方则需要故意的忽略溢出,所以需要忽略溢出检查
使用方法:
对代码块内进行检查
unchecked
{
int x = 10000000;
int y = 10000000;
int z = x * y; //z=276447232
}
checked
{
int x = 10000000;
int y = 10000000;
int z = x * y; //抛出OverFlowException
}
对某个返回值进行检查
int x = 10000000;
int y = 10000000;
int z = checked( x * y);//抛出OverFlowException
int x = 10000000;
int y = 10000000;
int z = unchecked( x * y);//z=276447232
如果需要修改编译器选项,可以在右键点击项目,Properties(属性)->Build(编译)->Advanced(高级)->Check for arithmetic overflow/underflow(检查算术溢出)那里勾选,或者在编译的时候加上编译选项checked+/checked- 来开启/关闭溢出检查
因为通常情况下,VS2010(我用的)是不会进行溢出检查的,在某些可能溢出的地方会因为编译器“聪明”的截取部分高位而导致最后运算结果出现错误所以需要进行检查,而某些地方则需要故意的忽略溢出,所以需要忽略溢出检查
使用方法:
对代码块内进行检查
unchecked
{
int x = 10000000;
int y = 10000000;
int z = x * y; //z=276447232
}
checked
{
int x = 10000000;
int y = 10000000;
int z = x * y; //抛出OverFlowException
}
对某个返回值进行检查
int x = 10000000;
int y = 10000000;
int z = checked( x * y);//抛出OverFlowException
int x = 10000000;
int y = 10000000;
int z = unchecked( x * y);//z=276447232
如果需要修改编译器选项,可以在右键点击项目,Properties(属性)->Build(编译)->Advanced(高级)->Check for arithmetic overflow/underflow(检查算术溢出)那里勾选,或者在编译的时候加上编译选项checked+/checked- 来开启/关闭溢出检查
全部回答
- 1楼网友:独钓一江月
- 2021-03-19 14:15
能说详细点不?
- 2楼网友:十年萤火照君眠
- 2021-03-19 13:44
能说的在具体一点吗?winform的checkbox吗?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯