c# - 通过使用 tryparse 而不是 parse 来避免 try-catch

标签 c# parsing try-catch

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

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

我在某处读到,如果在 try block 中抛出异常,则需要花费大量时间才能被捕获。

所以,我想使用 tryparse 而不是解析,如下所示:

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

这是一个好的做法吗?会不会花更少的时间?

最佳答案

是的,TryParse 更快。​​

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

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

关于c# - 通过使用 tryparse 而不是 parse 来避免 try-catch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15220155/

相关文章:

c# - 求连续素数之和

c# - 手绘IDE模块?

c# - 如何向 Josh Smith 的 MVVM msdn 设计添加过滤

python - 在 Python 中解析 HTML - 有些页面可以工作,有些则不能......?

parsing - 为什么 go 使用本地位置而不是 UTC 解析我的时间戳

r tryCatch 如何将对象传递给错误函数

c# - wpf中的多列自动搜索用户控件

swift - Alamofire + swiftyJSON 数组解析

node.js - 将 try/catch block 快速放入中间件以避免重复

r - R中的tryCatch block ,返回变量