标签:
关于C#类型转换的知识点,在各书籍以及博客文章中一抓一大把。那么我为什么又要重复这些文字呢----只因在各类文章中描述的很不错、明了,但是到了实际使用中(写代码)却被自己忽略了。仅此记下。
例如当封装了数据库执行返回受影响行数的方法ExcuteNonQuery使其方法返回了object类型,而到了业务上层,却需要将其转换数值型(如int),根据其是否大于零来判断操作是否成功。
当时我的想法是底层ExcuteNonQuery方法返回的是int类型,直接强转
string insertStr="insert into ..." ///插入数据库语句 XXXDal xxxDal=new XXXDal() //Dal底层为orm一封装好了的 object result =xxxDal.ExcuteNonQuery(insertStr) if((int)result>0) { //TODO成功后操作.... } else { }
尼玛报错了,(int)result 类转换错误。原来底层返回的object实为long类型(关于底层为什么要返回long,暂时不去理)。
那时在这个问题上纠结了蛮久的,一、我为什么要这样写?----只是单纯的以为返回受影响行数,应该是int;二、这样写是否合理,别人框架返回一个object,而你需要将其转成int,怎样写才合理?-----1、Convert.ToInt();2、int.TryParse();3、 直接强转。
bool -> 布尔型,其值为 true 或者 false
char -> 字符型,占有两个字节,表示 1 个 Unicode 字符(C#中是统一两个字节,不是所谓的中文才两个字节)
byte -> 字节型,占 1 字节,表示 8 位正整数,范围 0 ~ 255
sbyte ->带符号字节型,占 1 字节,表示 8 位整数,范围 -128 ~ 127
ushort -> 无符号短整型,占 2 字节,表示 16 位正整数,范围 0 ~ 65,535
uint -> 无符号整型,占 4 字节,表示 32 位正整数,范围 0 ~ 4,294,967,295
ulong -> 无符号长整型,占 8 字节,表示 64 位正整数,范围 0 ~ 大约 10 的 20 次方
short -> 短整型,占 2 字节,表示 16 位整数,范围 -32,768 ~ 32,767
int -> 整型,占 4 字节,表示 32 位整数,范围 -2,147,483,648 到 2,147,483,647
long -> 长整型,占 8 字节,表示 64 位整数,范围大约 -(10 的 19) 次方 到 10 的 19 次方
float -> 单精度浮点型,占 4 个字节
double -> 双精度浮点型,占 8 个字节
decimal ->128位高精度浮点数,常用于金融运算,不会出现浮点数计算的误差(在CLR中不是基本类型,decimal类型变量的运算不是直接生成IL指令,而是调用System.Decimal结构的方法)
枚举、结构体
1、string
2、object
3、类
4、委托
5、接口
6、数组
基本类型之间的转换
标签:
原文地址:http://www.cnblogs.com/Joy-et/p/4508284.html