C#难点逐个击破(9):类型转换

显式转换与隐式转换


类型之间的转换可以分为隐式转换与显式转换,如int类型可直接转换为long类型。


复制代码 代码如下:


int intNum = 23;

long longNum1 = intNum;


也可进行显式转换;

复制代码 代码如下:


int intNum = 23;

long longNum2 = (long)intNum;


Parse


每个值类型都包含Parse()依法,它将字符串转换成对应的数值类型]

复制代码 代码如下:


string text = "3.1415926E1";

float PI = float.Parse(text);


Convert


System.Convert属于.net framework中的类,为不可继承类,它在msdn中定义原型为

public sealed class ConvertSystem.Convert只支持预定义数量的类型,它支持的类型包括所有值类型加String类型的基本数据类型和Object类型,这里的基本数据类型为.net framework的数据类型。


复制代码 代码如下:


bool isTrue=false;

string strNum = Convert.ToString(isTrue);


TryParse()


TryParse属于C#静态方法,所有基本数据类型均包含此方法。

它返回bool类型,表示是否转换成功,它常搭配out来进行转换数据;若转换失败,它将返回false,不会引发异常。


复制代码 代码如下:


System.Console.Write("输入要转换的数值:");

string input = System.Console.ReadLine();//输入

int result;//转换结果

if (int.TryParse(input, out result))

{

System.Console.WriteLine("转换结果为:{0}", result);

}

else

{

System.Console.WriteLine("转换失败");

}


ToString()


所有的类型都支持ToString()方法,对于只有类型显式实现了ToString()的情况下才会返回该类型对象取值的字符串表示;其他类型ToString()只是返回数据类型的名称。


复制代码 代码如下:

Object o = new object();

Console.WriteLine(o.ToString());

int age = 23;

Console.WriteLine(age.ToString());

bool isMale = true;

Console.WriteLine(isMale.ToString());


0.216761s