.Net的数据类型复习

 有了前次float类型的教训以后,我开始复习C#的数据类型,今天在网上发现一篇有意识的文章:

 short s=0; s = s + 1; 和 short s=0; s += 1;

这两个表达式有什么区别,会报什么错误?头晕了,我哪到群里去问,很多朋友都说两个没有区别。 还是用事实来说话。

经测试: 第一个会报错:错误 1 无法将类型“int”隐式转换为“short”。存在一个显式转换(是否缺少强制转换?) E:/MVC/Test/Test/Form1.cs 40 17 Test 第二个通过编译,运行正常。

 后来找到解释: s = s + 1; 由于 1 默认是int型的,s是short的,"s+1"的结果默认是int的,把int的结果赋值给short时会报错,损失精度了,必须写成 s = (short)(s+1) 来强制转化一下 s+=1; 在编译时已经明确最后要赋值给s,即short型的,所以会在内部自动进行转换的,自动转换一般从低的往高的转换,所以第一个会报错呵呵,原来如此。顺便把C#的数据类型贴上,大家一起复习。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值