黑马程序员技术交流社区
标题:
数据类型转换问题
[打印本页]
作者:
з︶_伱眼裏
时间:
2013-12-29 10:53
标题:
数据类型转换问题
本帖最后由 з︶_伱眼裏 于 2013-12-29 18:44 编辑
我知道C#中数据类型转换有两种方式,一种是用Convert转换,还有一种是 ()转换成..,可是两种有什么区别吗??
作者:
卖火柴
时间:
2013-12-29 11:26
比如
ing a = (int)b;和 int a = convert.toint32(b)有什么区别
区别是前者只能转换数值类型的变量;
后者有很多重载,可以转换其他类型变量。
比如:
Convert.ToInt32(true)
Convert.ToInt32("12345")
补充:C#也是依赖于.net类库的。
只不过(int)是C#语言的功能。Convert.ToInt32()是.net类库中一个类的一个静态方法。
作者:
y494890511
时间:
2013-12-29 14:16
1、(int)是一种类型转换;当我们从int类型到long,float,double,decimal类型,可以使用隐式转换,但是当我们从long类型到int类型就需要使用显式转换,否则会产生编译错误。
2、int.Parse()是一种类容转换;表示将数字内容的字符串转为int类型。
如果字符串为空,则抛出ArgumentNullException异常;
如果字符串内容不是数字,则抛出FormatException异常;
如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常;
3、int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。最后一个参数为输出值,如果转换失败,输出值为 0
4、Convert.ToInt32()是一种类容转换;但它不限于将字符串转为int类型,还可以是其它类型的参数;
比较:
Convert.ToInt32 参数为 null 时,返回 0;
int.Parse 参数为 null 时,抛出异常。
Convert.ToInt32 参数为 "" 时,抛出异常;
int.Parse 参数为 "" 时,抛出异常。
Convert.ToInt32 可以转换的类型较多;
int.Parse 只能转换数字类型的字符串。
5、用法:int number=Convert.ToInt(待转换的变量); int number=Int.Parse(待转换的变量);
例:转换字符串 string str="123"; int number=Convert.ToInt(str);
6、int.TryParse 尝试将非数字类型转换成int类型,返回的值是bool类型,我们可以使用out参数得到转换成功后的int类型的整数
用法:bool b=Int.TryParse(待转换的变量,out int类型的变量);
转换成功后b=true,同时得到整数;转换失败,b=false;
以转换字符串为例:
string str="1243"; //待转换的字符串
int number; //声明一个int类型的变量number用来接收转换成功多返回的整数,number可以不赋值
bool b=Int.TryParse(str,out number); //转换成功后b=true,同时得到转换成功后的整数;转换失败,b=false;
注:(1)int.TryParse ,int.Parse()和convert.toint32用于转换非数字类型为int类型
(2)使用 int.Parse()和convert.toint32方法,当待转换的变量中不全是数字时,程序会抛异常,这时使用try-catch解决。
(3)使用 int.TryParse 转换 非数字类型为int类型,不会抛异常,在不确定待转换的变量是否全是数字时,最好使用int.TryParse。而确定待转换的变量全是数字时,使用int.Parse()和convert.toint32(用法简单)。
作者:
许庭洲
时间:
2013-12-29 14:18
1. 只有在内存存储上存在交集的类型之间才能进行Cast;
2. Convert不再是内存级别的转换,而是考虑数据意义的转换。
作者:
小伟NET
时间:
2013-12-29 15:03
前者是显式类型转换,这是C#的转换方法,是C#语言的基本语法。 而Convert.Toxxxx()是.Net的转换方法,是.Net类库支持的。 也就是说第一种在C#中可以用,与.Net类库没有关系。 第二种可以在.Net下的任何语言中用,比如C#,VB,都适用,但是需要.Net类库的支持。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2