2010-09-27 70 views

回答

4

对于类型转换工作的类型必须是兼容的:

object str = 10; 
int i = (int) str; 

解析为不同类型之间的转换:

string str = "10"; 
int i = int.Parse(str); 
+0

这样就意味着我只能使用铸造短,双,长等? – Rye 2010-09-27 13:55:52

+0

您可以使用任何类型的类型投射,因为您正在投射的类型与您正在投射的类型相同。就解析而言,Parse方法有不同的重载,它允许您将字符串转换为整数,浮点数,小数...... – 2010-09-27 13:58:10

+0

只是一个后续问题,所以解析要好得多? – Rye 2010-09-27 14:01:14

0

铸造厂当这些对象共享一些继承。但在你的情况下

int i = (int) str; 

你正在处理隐式自动转换。其中编译器会自动隐藏/放弃.NET内置类型。对于一个完整的指南,去这里寻找Converting and Casting

Int32.Parse(... 

解析是因为当他们两个不相关的对象,但有一种转换一种方式到另一种方式。