尝试解析失败后保留默认值
Keep default value after try parse fails
我有这个代码:
string myStr = "sdfs";
double myDouble = 3;
double.TryParse(myStr, out myDouble);
所以解析会失败,我分配给 "myDouble" 的值也会变为 0。
有没有一种很好的方法来保留这 3 个默认值,即使解析失败?没有像
这样的 if 子句
if(!double.TryParse(myStr, out myDouble))
{
myDouble = 3;
}
真正做到这一点的唯一方法是这样的:
string myStr = "sdfs";
double myDouble;
double myDoubleDefaultValue = 3;
if (!double.TryParse(myStr, out myDouble))
{
myDouble = myDoubleDefaultValue;
}
原因是对于 out 变量,该方法必须在完成之前分配一个值。
它仍然是一种 if 子句,但行数更少。这对我有用:
string myStr = "sdfs";
double myDouble = Double.TryParse(myStr, out myDouble) ? myDouble : 3;
我有这个代码:
string myStr = "sdfs";
double myDouble = 3;
double.TryParse(myStr, out myDouble);
所以解析会失败,我分配给 "myDouble" 的值也会变为 0。
有没有一种很好的方法来保留这 3 个默认值,即使解析失败?没有像
这样的 if 子句if(!double.TryParse(myStr, out myDouble))
{
myDouble = 3;
}
真正做到这一点的唯一方法是这样的:
string myStr = "sdfs";
double myDouble;
double myDoubleDefaultValue = 3;
if (!double.TryParse(myStr, out myDouble))
{
myDouble = myDoubleDefaultValue;
}
原因是对于 out 变量,该方法必须在完成之前分配一个值。
它仍然是一种 if 子句,但行数更少。这对我有用:
string myStr = "sdfs";
double myDouble = Double.TryParse(myStr, out myDouble) ? myDouble : 3;