首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >哪个更好: int.TryParse或尝试{ int.Parse() } catch

哪个更好: int.TryParse或尝试{ int.Parse() } catch
EN

Stack Overflow用户
提问于 2011-02-09 21:52:16
回答 6查看 43.8K关注 0票数 64

我知道..我知道..。性能不是这里的主要关注点,但出于好奇心,哪一个更好?

代码语言:javascript
复制
bool parsed = int.TryParse(string, out num);
if (parsed)
...

代码语言:javascript
复制
try {
    int.Parse(string);
}
catch () {
    do something...
}
EN

回答 6

Stack Overflow用户

发布于 2012-04-19 06:26:00

如果确实预料到转换有时会失败,我喜欢在conditional (Ternary) operator的一行中巧妙地使用int.TryParse等,如下所示:

代码语言:javascript
复制
int myInt = int.TryParse(myString, out myInt) ? myInt : 0;

在这种情况下,如果TryParse方法失败,将使用0作为默认值。

对于可以为空的类型也非常有用,如果转换失败,它将用null覆盖任何默认值。

票数 23
EN

Stack Overflow用户

发布于 2011-02-09 21:54:41

就我个人而言,我更喜欢:

代码语言:javascript
复制
if (int.TryParse(string, out num))
{
   ...
} 
票数 8
EN

Stack Overflow用户

发布于 2011-02-09 21:55:05

第一个!您不应该通过异常来编写代码。

你可以把它缩短为

if (int.TryParse(string, out num))

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4945763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档