C#中checked和unchecked的 用法是什么?何时用?搜索了大概了解了一些,但是高人请问下面两个怎么解释?
答案:3 悬赏:40 手机版
解决时间 2021-02-10 01:35
- 提问者网友:自食苦果
- 2021-02-09 09:52
C#中checked和unchecked的 用法是什么?何时用?搜索了大概了解了一些,但是高人请问下面两个怎么解释?
最佳答案
- 五星知识达人网友:傲气稳了全场
- 2021-02-09 10:02
错误信息已经很明确了:常量300无法转换为”byte“。
(byte)300在使用时已经溢出了byte能承载的容量所以必须用unchecked。追问byte i=127;
i=(byte)(i+300);这个时候也超出了byte的容量啊???为何不用unchecked?追答(byte)300是常量 ,如果不适用unchecked,计算机不知道该如何储存这个常量
而(byte)(i+300)则即使溢出也依然能够储存
(byte)300在使用时已经溢出了byte能承载的容量所以必须用unchecked。追问byte i=127;
i=(byte)(i+300);这个时候也超出了byte的容量啊???为何不用unchecked?追答(byte)300是常量 ,如果不适用unchecked,计算机不知道该如何储存这个常量
而(byte)(i+300)则即使溢出也依然能够储存
全部回答
- 1楼网友:神也偏爱
- 2021-02-09 11:57
byte是字节,1Byte=8bit,不算正负号的情况下,能存储的最大数值是256。把300赋给i会出现溢出错误,uncheck会忽略这个错误,(byte)300强制转换的结果是溢出的部分。追问(byte)300强制转换的结果是溢出的部分。是什么意思,能再解释清楚些吗??追答在计算机中,任何数据的存储最终都是转换为二进制来存储的。
比如用8Bit来存储数字0--255,转换为2进制后是00000000--
比如用8Bit来存储数字0--255,转换为2进制后是00000000--
- 2楼网友:三千妖杀
- 2021-02-09 10:21
C# 语句既可以在已检查的上下文中执行(checked),也可以在未检查的上下文中执行(unchecked)。 在已检查的上下文中,算法溢出引发异常。 在未检查的上下文中,算法溢出被忽略并且结果被截断。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯