码迷,mamicode.com
首页 > Windows程序 > 详细

C#类型转换

时间:2015-05-16 19:59:44      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

关于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、 直接强转。

C#类型

值类型

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、数组

类型转换

基本类型之间的转换

 

C#类型转换

标签:

原文地址:http://www.cnblogs.com/Joy-et/p/4508284.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!