在我的代码中的很多地方我都有这个:
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/