c#

位置:IT落伍者 >> c# >> 浏览文章

Rational 面向 .NET 开发


发布日期:2018年11月26日
 
Rational 面向 .NET 开发

有了前次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~无符号整数charcharCharx~xffffUnicode字符decimalDecimal

~

十进制数字doubledoubleDouble

e~

e

双精度位数字floatfloatSinglee~e单精度位数字int intInt~有符号整数longlongInt

~

有符号整数sbytebyteSByte~有符号整数shortshortInt~有符号整数unitUInt~无符号整数ulongUInt~无符号整数ushortUInt~无符号整数

在c#中所有书类型也都是System的一部分可以在其中引用如bool可以引用为SystemBoolean

上一篇:c#扩展方法奇思妙用基础篇六:WhereIf 扩展

下一篇:.net页面间的参数传递简单实例