C#类型转换的问题?C#类型转换的问题?

来源:百度知道 编辑:UC知道 时间:2024/06/19 05:42:59
C#的类型转换怎么那么复杂?

可以这样
(int)temp;
可以这样
int.Parse(temp);
还可以这样
Convert.ToInt32(temp);
有什么区别呀?

还有查表的时候
while(reader.Read()){
string name = (string)reader["name"];//string类型的可以这样转。
int id =(int)reader["id"];//int类型的就不可以这样转,必须Convert.ToInt32(reader["id"])这样转,为什么呀?
}

前面的,不多说了,那些都差不多的
第一个问题,一般是用于精度高的转换为精度低的
比如int->byte
int.Parse(temp); Convert.ToInt32(temp); 这两个一般是把字符串类型的转换成数值类型的

而第二个问题
可能是数据类型的问题
显式的数据类型转换一般是数值类型之间的
而对于一个字符串就没有办法使用(int)temp; 这类的
必须用比如Convert.ToInt32

(类型)变量,这种要求变量必须是()里的类型
convert就宽得多,另外有null值也不会出异常,而返回空置。
所以如果要求严谨,就都用convert吧,安全。

可以这样
(int)temp;
可以这样
int.Parse(temp);
还可以这样
Convert.ToInt32(temp);
有什么区别呀?
----------
几乎无区别

int id =(int)reader["id"];//int类型的就不可以这样转
确定不可以转吗

人家规定的,我们也没有办法啊

习惯了就好。