黑马程序员_C#类型转换复习

------- Windows Phone 7手机开发.Net培训、期待与您交流! -------

隐式转换             

    当对简单的值类型进行转换时,如果是按照 Byte,short,int,long,float,double从左到右(从短到长)进行转换的时候,可以直接进行转换(隐式转换)。简言之,要进行隐式转换,首先两种类型必须是相兼容的,如intdouble是相兼容的;其次,要从小类型向大类型转换,这样的话,小类型的数据不会丢失精度。而如果要从大类型转换到小类型,会提示“无法将double类型隐式转换为int类型”简单的代码示例:

static void Main(string[] args)        

{             

int a = 10;            

double b = a;         

Console.WriteLine("b的值为:"+b);          

Console.ReadKey();            

显示转换     

    显示转换是相对于隐式转换而言的,依然是对值类型进行转换时,从类型转换成小类型。直接转换的话,编译器会提示无法将*类型转换为*类型*,存在一个显示转换,这时需要进行强制转换(显示转换)。必须指出的是,显示转换会降低数据精度。简单的代码示例: 

static void Main(string[] args)   

{            

double a = 50.64;           

int b = (int)a;       

Console.Write("b的值为:"+b);         

Console.ReadKey();         

如上的显示结果是b等于50,精度降低。

    每种数据类型都存在自身的范围,例如byte类型的范围是0-255int型的范围是0-65535,当int型转换成byte类型时,如果超出了自身的范围时会怎么处理呢?看下代码示例:

Static void Main(string[] args)    

{          

 int a = 256;    

 byte b = (byte)a;  

 Console.Write("b的值为:"+b);   

 Console.ReadKey();       

这段代码的运行结果 “b的值为0”,如果把a的值改为257,则b的值为1。结果是怎么来的,编译器会把256转换成对应的二进制,也就是100000000,当转换成byte类型时(8位二进制数),会长出8位的部分截掉,因此结果变成了0。       

ToString()转换     

     当把值类型转换成字符串类型时,可以直接调用值类型的方法ToString()进行转换,另外ToString还可以将结果转换成相应的进制形式,简单的代码示例:

staticvoid Main(string[] args)        

{    

//转换为对应的字符串类型          

int a = 256;  

string b =a.ToString();   

Console.Write("b的值为:"+b);            

Console.ReadKey();        

}  

static void Main(string[] args)      

{             //转换为十六进制形式(X可以换为小写,代表对应的a-f的大小写)             int a = 256;     

string b =a.ToString("X");             //输出结果为“b的值为100”             Console.Write("b的值为:"+b);      

Console.ReadKey();        

}

parse方法 

intlongfloat类型都有parse方法,可以将字符串转换为对应的数据类型,简单的代码实例:

staticvoid Main(string[] args)         

{            

 int a = 256;    

string b ="256";      

if (int.Parse(b) ==a)         

{                

Console.Write("a=b");    

 Console.ReadKey();         

 }      

Convert类  

Convert有很多的转换数据类型的方法,它将继承自Object类型的对象转换为制定的类型,即Convert.toInt32()(还有对应其他类型的转换)。

另外的一种方法:Convert.ChangeType(Object,Type),这种方法在涉及到泛型时会显现出优势。

------- Windows Phone 7手机开发.Net培训、期待与您交流! -------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值