首页 新闻 会员 周边

TryParse 与Parse

0
悬赏园豆:5 [已解决问题] 解决于 2014-09-22 16:27
1 //第一种做if判断
2 int iID;
3 if (long.TryParse(txtString, out iID)
4    {
5          
6    }
7 //第二种直接转换
8 var iID=int.Parse(txtString)

我想问,我是不是可以直接用第二种,这两种方式有啥区别

麦田清风的主页 麦田清风 | 初学一级 | 园豆:7
提问于:2014-09-22 15:19
< >
分享
最佳答案
0

可以直接用第二种,性能要好,前提是你必须保证你的parse不出异常或自己处理异常。

tryparse等同于:

int iID;

try

{

    iID = int.Parse(txtString);

}

catch

    //这里处理失败的情况

收获园豆:5
519740105 | 大侠五级 |园豆:5810 | 2014-09-22 15:45

用Parse必须保证不出异常或自己处理异常

那和Convert.ToInt32岂不是没区别了。。。

麦田清风 | 园豆:7 (初学一级) | 2014-09-22 16:07

@new_ITP: 有区别啊。parse如果对象是null的时候会出异常的。Convert.ToInt32就不会,会返回0

大楚打码人 | 园豆:4313 (老鸟四级) | 2014-09-22 16:11

@new_ITP: 除了上面的回答之外,他们之间还有一个区别:Convert.ToInt32支持把一个object转换为int,但parse只支持字符串。

另外,使用int.parse比convert.toint32可读性来说,int.parse要好点。

519740105 | 园豆:5810 (大侠五级) | 2014-09-22 16:14

@519740105: 博客园真是个好地方,这是我最大的感受,谢谢

麦田清风 | 园豆:7 (初学一级) | 2014-09-22 16:27
其他回答(1)
0

TryParse相当于Parse逻辑加了个异常处理,失败时返回False。

Echo.Liu | 园豆:385 (菜鸟二级) | 2014-09-22 16:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册