首 页IT知识库翔宇问吧收藏本站
当前位置:算搜IT乐园IT知识库C#专区C#基础

C#中的checked、unchecked操作符

减小字体增大字体作者:佚名  来源:转载整理  发布时间:2014-10-26 22:33:20

在C#中checked和unchecked操作符用于控制检查整型算术运算时是否溢出。

下列运算参与了checked和unchecked检查(操作数均为整数):

1) 预定义的++和――一元运算符。

2) 预定义的-一元运算符。

3)预定义的+、-、×、/等二元操作符。

4)从一种整型到另一种整型的显示数据转换。

checked与unchecked

当上述整型运算产生一个目标类型无法表示的大数时,可以有相应的处理方式:

1、使用checked

若运算是常量表达式,则产生编译错误:The Operation overflows at complie time in checked mode.
若运算是非常量表达式,则运行时会抛出一个溢出异常:OverFlowException异常

2、使用unchecked

无论运算是否是常量表达式,都没有编译错误或是运行时异常发生,只是返回值被截掉不符合目标类型的高位。

3、既未使用checked又未使用unchecked

若运算是常量表达式,默认情况下总是进行溢出检查,同使用checked一样,会无法通过编译。
若运算是非常量表达式,则是否进行溢出检查,取决于外部因素,包括编译器状态、执行环境参数等。

下例说明了checked和unchecked操作符在非常量表达式中的使用方法:

class Test
{
   static int x = 1000000;
   static int y = 1000000;
   static int F()
   {
      return checked(x*y); //运行时抛出OverFlowException异常
   }
   static int G()
   {
      return unchecked(x*y); //截去高位部分,返回-727379968
   }
   static int H()
   {
      return x*y; //依赖于编译器的默认设置,一般是不检查
   }
}

checked和unchecked操作符在常量表达式中的使用方法:

class Test
{
   const int x = 1000000;
   const int y = 1000000;
   static int F()
   {
      return checked(x*y); //编译错误,编译无法通过
   }
   static int G()
   {
      return unchecked(x*y); //截去高位部分,返回-727379968
   }
   static int H()
   {
      return x*y; //编译错误,编译无法通过
   }
}

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
请注意用语文明且合法,不要发布带有攻击性、侮辱性的言论,谢谢合作!
用户名:查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2020 suansuo.cn. All Rights Reserved.
蓝筹公司和红筹公司,美鹰证券:340亿美元收购红帽公司,IBM发力云计算_测焖股票网a股大盘看哪个指数,A股大盘探底回升至3539点,三大指数震荡调整到位,A股剑指3700点!产业投资名词解释,说明:投入资本我国多层次资本市场体系的构成,资本市场一体化是个什么鬼,求大神!?资本市场工具包括国库券,有什么词汇书适合商科背 考gmat用或者看看专业经济类文章 目前了解的经济专业词汇大多从经济学原理那?名词解释资本积聚,有谁可以告诉我最直白的解释什么是资本?资本市场的类型有哪些,中国的资本力量越来越强大,不断进入各行各业,未来年轻人的出路是否只剩下成为“打工人”这一出路了?创业板开盘当日有涨跌限制吗,20200924股市简历日记:三大指数全天单边下跌,深水低吸创业板个股创业板基金是什么板块,有什么基金包括新基建的所有大板块吗?创业版etf代码,科创板基金有哪些推荐?上证指数和创业板指有什么区别,上证指数编制的问题出在哪里?创业板不限制涨跌幅吗,创业板马上就要百分之20的涨跌,你怎么看?什么是中小盘成长股,易方达中小盘为什么都买大盘股?主力洗盘不怕散户买吗,主力为什么要洗盘?终于有人把主力洗盘的秘密说透了,看懂将获益终生,仅分享这一次A股军工龙头企业,A股:重磅利好突袭,这7只“军工”顶尖龙头有望翻倍!(名单)多少算小盘股,大中小盘股各自对应的短线指标是哪几种?为什么大盘最近一直跌,大盘还会跌吗?大盘会跌倒多少点,现在是割肉还是补仓!k线图是怎么看的?,股票k线图怎么看?币圈k线图教程,姐妹币守护:2021年4月8日弧顶k线比特币应用实例白银k线图基础知识及k线图图解,请问有关于黄金、白银等贵金属投资的书可以推荐吗?股票K线含义,K线的精髓在哪里?k线指标公式解析,揭秘趋势、均线、超买超卖等等系列指标的致命缺陷如何进入资本市场们的头部,有 200 万人挤国考独木桥,但公考培训头部公司反而遭遇寒潮,背后有哪些原因?行业该如何更好的发展?资本市场体系,通俗来讲何为资本市场?货币的解释名词,有人能能简单说明比特币侧链(sidechain)究竟是什麽东西吗?资本市场层次结构,想对金融市场有一个结构性了解,并且能够对市场做出自己的分析,有什么推荐读物吗,该如何理清学习思路?什么是15分钟k线图,K线图里MA代表什么意思?比特币行情k线图,【比特币市场分析】比特币Ethereum凌晨反击后市,关注大范围股市k线图怎么看的?-广告,这些K线图信号,你应该买进吗?k线图上的成交量是如何表示的,如何判断成交量的性质?