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)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类型的就不可以这样转
确定不可以转吗
人家规定的,我们也没有办法啊
习惯了就好。