有了前次float类型的教训以后我开始复习C#的数据类型今天在网上发现一篇有意识的文章
short s=;
s = s + ;
和
short s=;
s += ;
这两个表达式有什么区别会报什么错误?
还是用事实来说话测试
经测试
第一个会报错错误 无法将类型int隐式转换为short存在一个显式转换(是否缺少强制转换?) E:\MVC\Test\Test\Formcs Test
第二个通过编译运行正常
后来找到解释
s = s + ; 由于 默认是int型的s是short的s+的结果默认是int的把int的结果赋值给short时会报错损失精度了必须写成 s = (short)(s+) 来强制转化一下
s+=; 在编译时已经明确最后要赋值给s即short型的所以会在内部自动进行转换的
自动转换一般从低的往高的转换所以第一个会报错
顺便把C#的数据类型贴上大家一起复习
#是基于框架的他的基础部分就是共享的通用类型系统(CTSCommon Type System)下面是C#和java数据类型的等价类型
c#数据
类型
java数据
类型
运行时
类型
大小
(字节)
范围描述boolbooleanBooleann/atrue or false布尔值byteByte
~
无符号整数charcharChar
x
~
xffffUnicode字符decimalDecimal
~
十进制数字doubledoubleDouble
e~
e
双精度
位数字floatfloatSingle
e
~
e
单精度
位数字int intInt
~
有符号整数longlongInt
~
有符号整数sbytebyteSByte
~
有符号整数shortshortInt
~
有符号整数unitUInt
~
无符号整数ulongUInt
~
无符号整数ushortUInt
~
无符号整数
在c#中所有书类型也都是System的一部分可以在其中引用如bool可以引用为SystemBoolean