类型转换从根本上说是类型铸造,或者说是把数据从一种类型转换为另一种类型。在 C# 中,类型铸造有两种形式:
隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。
显式类型转换 - 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。
下面的实例显示了一个显式的类型转换:
static void Main(string[] args){double d = 5673.74;int i;// 强制转换 double 为 inti = (int)d;Console.WriteLine(i);Console.ReadKey();}
当上面的代码被编译和执行时,它会产生下列结果:
5673下面的实例把不同值的类型转换为字符串类型:
static void Main(string[] args){int i = 75;float f = 53.005f;double d = 2345.7652;bool b = true;Console.WriteLine(i.ToString());Console.WriteLine(f.ToString());Console.WriteLine(d.ToString());Console.WriteLine(b.ToString());Console.ReadKey();}
当上面的代码被编译和执行时,它会产生下列结果:
7553.0052345.7652True
在C#中,我们可以看到三种强制类型转换,比如强制转换成有符号32位整型,可以找到下面三种方式:
①(int)() ②Convert.ToInt32() ③int.Parse()
as 转换符
as 操作符的工作方式与强制类型转换一样 ,只是它永远不会抛出一个异常,如果对象不能转换,结果就是,强制转换则会抛出异常。
