3

在我的代码的很多地方我都有这个:

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

我在某处读到,如果在 try 块中抛出异常,则需要很长时间才能被捕获。

所以,我想使用 tryparse 而不是 parse,像这样:

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

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

4

2 回答 2

3

是的,TryParse速度更快。

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

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

于 2013-03-05T09:33:52.660 回答
1

我觉得使用的两个好处TryParse

  1. try.. catch...
  2. 您将始终在变量中具有值,无论是您要分配的值还是默认值。因此,一旦将变量传递给 TryParse,您就可以直接使用它
于 2013-03-05T09:33:11.477 回答