尝试解析失败后保持默认值

时间:2016-09-29 18:49:06

标签: c# .net default

我有这段代码:

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

因此解析将失败,而且我分配给“myDouble”的值也将变为0.

即使解析失败,有没有一种方法可以保留3个默认值?没有像

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

2 个答案:

答案 0 :(得分:2)

它仍然是一种if子句,但线条较少。这对我有用:

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

答案 1 :(得分:1)

真正唯一的方法就是这样:

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

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