C#难点逐个击破(9):类型转换
显式转换与隐式转换
类型之间的转换可以分为隐式转换与显式转换,如int类型可直接转换为long类型。
代码如下:
/*隐式转换*/
int intNum = 23;
long longNum1 = intNum;
/*显式转换*/
int intNum = 23;
long longNum2 = (long)intNum;
Parse
每个值类型都包含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的数据类型。
代码如下:
/*Convert转换*/
bool isTrue=false;
string strNum = Convert.ToString(isTrue);
TryParse()
TryParse属于C#静态方法,所有基本数据类型均包含此方法。它返回bool类型,表示是否转换成功,它常搭配out来进行转换数据;若转换失败,它将返回false,不会引发异常。
代码如下:
/*TryParse转换*/
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());