gpt4 book ai didi

c# - 使用 (Try)Parse 将空字符串加倍

转载 作者:行者123 更新时间:2023-11-30 13:23:08 36 4
gpt4 key购买 nike

我这里有一个 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);

最佳答案

如果无法解析字符串并且 TryParse 返回 bool,则

Parse 会抛出异常。您可以处理此 bool 值(如果解析成功则为 true,否则为 false)以显示您想要显示的成功/错误消息。

因为 myValue 是一个 out 参数,所以它必须由方法设置,如果字符串无法解析,TryParse 将它设置为 0.0,这就是为什么你在使用 TryParse 方法时重新获取该数字。

关于c# - 使用 (Try)Parse 将空字符串加倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13953435/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com