空字符串使用(尝试)解析使用

UNe*_*rNo 3 c# double parsing tryparse

我在这里使用Parse构建系统,使用Parse转换值(现在是3.5).

string myString = String.Empty;
double myValue = double.Parse(myString);
Run Code Online (Sandbox Code Playgroud)

抛出FormatException(我期望0.0).

如果我用2.0+重写它

string myString = String.Empty;
double myValue;
if (double.TryParse(myString, out myValue))
    //do something
Run Code Online (Sandbox Code Playgroud)

我得到了想要的0.0,但不幸的是我失去了获得有意义的错误消息的可能性(在else树中).

为什么给我解析错误和TryParse我的期望值?有没有办法从TryParse中获取错误消息(时间不是问题)?

我不想那样解决它:

key*_*rdP 8

Parse如果无法解析字符串并TryParse返回a,则抛出异常bool.您可以处理此bool(如果解析成功,则为true,否则为false)以显示您要显示的成功/错误消息.

由于myValue是一个out参数,它必须由方法设置,因此,如果无法解析字符串,TryParse将其设置为0.0,这就是为什么在使用TryParse方法时获得该数字的原因.