浮点型
(single) float 4B
double 8B
整型
sbyte symbol byte -2^7+1——2^7-1,【-127, 127】
byte [0, 2^8-1 = 255]
ushort 【0, 2^16-1=65535】
short 【-2^15, 2^15】
char 【0, 2^16-1=65535】
int 4B
long 8B
类型转换
1)值类型之间的转换:
小类型——>大类型 隐式转换
大类型——>小类型 显示转换,虽然不报错,但是你敢转,我就敢给你丢失精度或数据。
Boolean不支持数据类型的转换,只能转换成字符串tostring()。java也不能。js中true与数字操作时自动默认为1,false默认为0.
2)值类型和引用类型间的转换——装箱、拆箱
int i = 563;
Object obj = i; //<span style="color:#FF0000;">装箱是隐式的,拆箱是显式的</span>
double d = (int)obj;<span style="color:#FF0000;">//装什么拆什么原则。否则的话编译时不报错,运行报错。
</span>
Console.Write(d);
3)Enum的与其他类型之间的转换
enum转换成数字
byte b = (byte)weekday.wednesday;<span style="color:#FF0000;">//显示转换</span>
数字转换成enum
int a = 1;
Console.Write((weekday)a);
output:monday
字符串转换成enum,这个字符串必须在enum中存在,相当于跟原来的枚举值又取了一个别名,而且这个别名又不能用weekday来调用
不明白这个存在有什么意义?
weekday mondaytoo= (weekday)Enum.Parse(typeof(weekday), "monday", true);
类型转换建议使用Convert类,封装了很多方法。防止自己写的方法出错。
String str = "123";
int a = Convert.ToInt16(str) + 1;
Console.WriteLine(a);
output:124