其他分享
首页 > 其他分享> > 避免尝试捕获使用tryparse而不是解析

避免尝试捕获使用tryparse而不是解析

作者:互联网

在我的代码中的很多地方,我都有:

try
{
    price = double.Parse(sPrice.Replace(",", "."), CultureInfo.InvariantCulture);
}
catch
{
    price  = 0;
}

我在某处读到,如果在try块中引发了异常,则要花费很多时间.

因此,我想使用tryparse而不是parse,如下所示:

if (!double.TryParse(sPrice, out price))
{
     price  = 0;
}

这是一个好习惯吗?会花费更少的时间吗?

解决方法:

是的,TryParse更快.

但是,对我来说,这听起来像是过早的优化,除非您期望在包含许多无效输入字符串的紧密循环中调用Parse.

您应该选择的不是取决于速度,而是取决于要求和期望获得的数据类型.另外,考虑另一种选择:Convert.ToDouble

标签:try-catch,c,parsing
来源: https://codeday.me/bug/20191031/1973761.html