黑马程序员技术交流社区

标题: 在C#中Convert.Toint32与int.TryParse的区别! [打印本页]

作者: net    时间: 2013-3-17 20:49
标题: 在C#中Convert.Toint32与int.TryParse的区别!
本帖最后由 net 于 2013-3-18 08:47 编辑

在C#中Convert.Toint32  和   int.TryParse   虽然都是转换为整数的类型,但他们在用法上有什么不同?在什么情况下用Convert.Toint32,什么情况下用  int.TryParse?还有它们有什么本质上的区别?
作者: 许庭洲    时间: 2013-3-17 21:19
1。Convert.ToInt32,将字符串转为int类型,还可以将其它类型的值转成int类型。变量若为object或string类型,当其值为null时,会传回0,不会造成程序错误,但是若此string类型的值为string.Empty,在转型成int时,仍会造成程序错误。
2。 int.TryParse,将数字内容的字符串转为int类型,如果字符串内容为空或者null时,则抛出ArgumentNullException异常;如果字符串内容不是数字,则抛出FormatException异常;如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常。
作者: net    时间: 2013-3-18 08:50
许庭洲 发表于 2013-3-17 21:19
1。Convert.ToInt32,将字符串转为int类型,还可以将其它类型的值转成int类型。变量若为object或string类型 ...

嗯!谢谢您的回答,让我了解了一个新的知识!
作者: 李稳    时间: 2013-3-20 12:53
我只知道这个 ToInt32 内部是这样实现的。。
public static int ToInt32(string value)
{
    if (value == null)
    {
        return 0;
    }
    return int.Parse(value, CultureInfo.CurrentCulture);
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2