在我的代码的很多地方我都有这个:
try
{
price = double.Parse(sPrice.Replace(",", "."), CultureInfo.InvariantCulture);
}
catch
{
price = 0;
}
我在某处读到如果在try块中抛出异常,则需要花费很多时间才能被捕获。
所以,我想使用tryparse而不是parse,就像这样:
if (!double.TryParse(sPrice, out price))
{
price = 0;
}
这是一个好习惯吗?会花更少的时间吗?
答案 0 :(得分:3)
是的,TryParse
更快。
然而,这对我来说有点过早的优化,除非你期望在一个包含许多无效输入字符串的紧密循环中调用Parse
。
您应该选择不依赖于速度,而是根据要求以及您希望获得的数据类型。另外,请考虑另一种选择:Convert.ToDouble
答案 1 :(得分:1)
我觉得使用TryParse
try.. catch...