C#类型转换

|   版权声明:本文为博主原创文章,未经博主允许不得转载。

 

1. 隐式转换:隐式转换就是系统默认的、不需要加以声明就可以进行的转换。
       *注意:1》.只能进行同值类型之间的转换(即double不能和string进行隐式转换)
                 2》.隐式转换只支持从小范围的数转换到大范围的数(即long  --->  int是不可行的,因为long的范围在(-2^63~2^63-1),

而int的范围在(-2^31~2^31-1)明显小于long的范围) 

                                 

      3》.大精度的不能转换成小精度的数:(即decimal类型的不能转换成double类型,因为decimal的精度能准确的表示到27~28

位数值,而double却只能表示到15~16为数值,因此如果将decimal转换成double,将会丢失很多位的数据,因此大精度的类型不能转换成

小精度的类型)

2.c#支持的隐式转换

 1 从sbyte类型到short,int,long,float,double,或decimal类型。
 2 从byte类型到short,ushort,int,uint,long,ulong,float,double,或decimal类型。
 3 从short类型到int,long,float,double,或decimal类型。
 4 从ushort类型到int,uint,long,ulong,float,double,或decimal类型。
 5 从int类型到long,float,double,或decimal类型。
 6 从uint类型到long,ulong,float,double,或decimal类型。
 7 从long类型到float,double,或decimal类型。
 8 从ulong类型到float,double,或decimal类型。
 9 从char类型到ushort,int,uint,long,ulong,float,double,或decimal类型。
10 从float类型到double类型。

 

3.显示转换(强制类型转换):需要明确的指定转换类型,显示转换可能导致信息丢失(精度上可能产生损失)

  *注意:同样的显示转换,也必须是同值类型的转换,不能从double转换为string

  示例:

  1 double s; 2 int S= (int)s; 

 

4.拆箱和装箱

  装箱:把一个值类型变量装箱也就是创建一个object对象,并将这个值类型变量的值复制给这个object对象

1 //隐式转换,obj为创建的object对象的引用
2 int i = 10;
3 object obj = i;
4 //显示转换
5 int i = 106 object obj = object(i);

  拆箱:拆箱操作是指将一个引用类型显示转换成一个值类型。

  1 object obj = new object(); 2 int j = (int)obj; 

 

5.用户使用Console.ReadLine()来转换用户输入内容的类型。
  在这里使用新的语句: Convert.ToType();来实现
  如下:

1 Convert.ToDouble();                 //将String转换成双精度类型
2 Convert.ToInt32();                    //将String转换成int类型
3 Convert.ToInt64();                     //将String转换成long类型
4 .........

  使用示例:

1 string str;
2 int age;
3 Console.WriteLine("请输入你的年龄: ");
4 str = Console.ReadLine();
5 age = Convert.ToInt32(str);
6 Console.WriteLine("我今年 {0} 岁了!", age);
7 Console.ReadKey();
posted @ 2016-08-21 12:07  Geore  阅读(818)  评论(0编辑  收藏  举报