在try parse失败后保持默认值

本文关键字:默认值 失败 try parse | 更新日期: 2023-09-27 18:09:36

我有这样的代码:

string myStr = "sdfs";
double myDouble = 3;
double.TryParse(myStr, out myDouble);

因此解析将失败,并且我分配给"myDouble"的值将更改为0。

是否有一个很好的方法来保持3的默认值,即使解析失败?没有像

这样的if子句
if(!double.TryParse(myStr, out myDouble))
{
    myDouble = 3;
}

在try parse失败后保持默认值

这仍然是一个if子句,但行数更少。

    string myStr = "sdfs";
    double myDouble = Double.TryParse(myStr, out myDouble) ? myDouble : 3;

唯一的方法就是这样做:

string myStr = "sdfs";
double myDouble;
double myDoubleDefaultValue = 3;
if (!double.TryParse(myStr, out myDouble))
{
    myDouble = myDoubleDefaultValue;
}

原因是,对于out变量,方法必须在完成之前赋值。