我在这里有一个 1.1 的构建系统,使用 Parse 来转换值(现在是 3.5)。
string myString = String.Empty;
double myValue = double.Parse(myString);
抛出一个 FormatException (我期望 0.0)。
如果我使用 2.0+ 重写它
string myString = String.Empty;
double myValue;
if (double.TryParse(myString, out myValue))
//do something
我得到了想要的 0.0,但不幸的是,我失去了获得有意义的错误消息的可能性(在 else 树中)。
为什么给我 Parse 一个错误而 TryParse 我的期望值?有什么方法可以从 TryParse 中获取错误消息(时间不是问题)?
我不想这样解决它:
使用 if...then 避免错误
myValue = myString.Length == 0 ? 0.0 : double.Parse(myString);
如果发生错误,两次调用
if (!double.TryParse(myString, out myValue)) myValue = double.Parse(myString);