我有这段代码:
string myStr = "sdfs";
double myDouble = 3;
double.TryParse(myStr, out myDouble);
因此解析将失败,而且我分配给“myDouble”的值也将变为0.
即使解析失败,有没有一种方法可以保留3个默认值?没有像
这样的if子句if(!double.TryParse(myStr, out myDouble))
{
myDouble = 3;
}
答案 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变量,该方法必须在完成之前赋值。