这个Decimal.TryParse出了什么问题?

mar*_*zzz 6 c# tryparse

代码:

Decimal kilometro = Decimal.TryParse(myRow[0].ToString(), out decimal 0);
Run Code Online (Sandbox Code Playgroud)

有些论点无效吗?

Ode*_*ded 28

out decimal 0 不是有效参数 - 0不是有效的变量名.

decimal output;
kilometro = decimal.TryParse(myRow[0].ToString(), out output);
Run Code Online (Sandbox Code Playgroud)

顺便说一句,返回值将是bool- 从变量的名称,您的代码应该是:

if(decimal.TryParse(myRow[0].ToString(), out kilometro))
{ 
  // success - can use kilometro
}
Run Code Online (Sandbox Code Playgroud)

既然你想要回归kilometro,你可以这样做:

decimal kilometro = 0.0; // Not strictly required, as the default value is 0.0
decimal.TryParse(myRow[0].ToString(), out kilometro);

return kilometro;
Run Code Online (Sandbox Code Playgroud)

  • 我大胆猜测“kilometro”也是一个“double”,而不是指示成功所需的“bool”返回类型。 (2认同)

mar*_*c_s 5

好吧,decimal.TryParse返回一个bool类型 - 所以你需要做一些类似的事情:

Decimal kilometro;

// if .TryParse is successful - you'll have the value in "kilometro"
if (!Decimal.TryParse(myRow[0].ToString(), out kilometro)
{ 
   // if .TryParse fails - set the value for "kilometro" to 0.0
   kilometro = 0.0m;
} 
Run Code Online (Sandbox Code Playgroud)