您的位置:首页 > 编程语言 > C#

【转】C#学习笔记--C#的类型转换

2012-07-29 17:43 330 查看

在计算机中,所有的数据都是以0和1的形式存在的,变量的含义是通过数据的这种解释方式来传达的。在实际应用中很多地方要用到不同数据类型之间的转换,请看下面的一个例子

string str = null;

double num=null;

Console.WriteLine("enter a serial of numbers:\t");

str = Console.ReadLine();//读取一行数字

num = Convert.ToDouble(str);//字符串转换成数字

类型转换包括有两种方法:

隐式转换和显式转换,下面将分别介绍这两种方法。



一. 隐式转换

隐式转换不要做任何工作,不要编写其他的代码,可以直接转换。

请看:

ushort num1;

char ch='a';

num1 = ch;



num1 = 98;

ch = num1;// (1)

错误:法将类型“ushort”隐式转换为“char”。存在一个显式转换(是否缺少强制转换?)

如果将上面的(1)处的代码改为:ch = (char)num1;那么编译的时候就没有错误,这种方法就是显式转换。其结果如下:

ushort num1;

char ch='a';

num1 = ch;//直接转换



num1 = 98;

ch = (char)num1;//间接转换,num1的前面多了个char.



从上图可以看出隐式和显式转换的一些区别了。

二、显式转换

显式转换有个很明显的标识,在要转换的数据之前有个标识符,例如:

ch = (char)num1。当然显式转换不止只有这个方法,还可以用Convert方法来处理数据的转换。

先看下几个例子,再对照后面给出的两个表格的来验证。本文发表于编程入门网:www.bianceng.cn

int age = 22;

double myage = (double)age; //显式转换

Console.WriteLine("int age={0}", age);

Console.WriteLine("double myage={0}", myage);

float price = 55.55F;

decimal cupon = Convert.ToDecimal(price); //

使用Convert方法来处理。

Console.WriteLine("float price={0}", price);

Console.WriteLine("decimal cupon={0}", cupon);



下面的两个表格在变量的转换过程中国比较重要,特别是Convert的各种方法

表1:左边类型可以无错误的直接成功转换为右边的类型

类型

编译器隐式执行的转换

byte

short,ushort,int,uint,long,ulong,float,double,decimal

sbyte

short,int,long,float,double,decimal

short

int,long,float,double.decimal

ushort

int,uint,float,ufloat,double,decimal

int

long,float,double,decimal

uint

float,double,decimal,

long

float,double,decimal

ulong

float,double,decimal

float

double

char

ushort,int,uint,long,ulong,float,double,decimal

这些转换与两种数据的长度相关,这个表不需要记住,在实际编程过程中如果有什么错误,系统编译器会自动提醒。

表2:类Convert的常用方法:类型1 var1=Convert.method(var2);

Convert.ToBoolean();

Convert.ToInt64()

Convert.ToByte();

Convert.ToSByte();

Convert.ToChar();

Convert.ToString();

Convert.ToDecimal()

Convert.ToSingle();

Convert.ToDouble()

Convert.ToUInt16();

Convert.ToDateTime()

Convert.ToUInt32();

Convert.ToDouble();

Convert.ToUInt64();

Convert.ToInt16();

Convert.ToInt32()

以上16个方法中只有几个在实际编程过程中用到很多,特别是Convert.ToString();Convert.ToChar();

Convert.ToDateTime()这几个使用频率很高,大家要自己编程体会,下一节将会介绍C#中常用的3种复杂类型变量:结构体,数组和枚举类型。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: