7

コード :

Decimal kilometro = Decimal.TryParse(myRow[0].ToString(), out decimal 0);

いくつかの引数が無効ですか?

4

4 に答える 4

34

out decimal 0 は有効なパラメーター0ではありません - は有効な変数名ではありません。

decimal output;
kilometro = decimal.TryParse(myRow[0].ToString(), out output);

ちなみに、戻り値はbool- 変数の名前から、コードはおそらく次のようになります。

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

を返したいのでkilometro、次のことができます。

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

return kilometro;
于 2012-12-14T11:05:21.057 に答える
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;
} 
于 2012-12-14T11:07:58.747 に答える
2

TryParse ステートメントの正しい使用法を以下に示します。最初に 10 進数を宣言してから、それを TryParse メソッドに渡す必要があります。TryParse が成功した場合kilometroは新しい値になり、それ以外の場合はゼロになります。それがあなたの望む結果だったと思います。

decimal kilometro = 0;
if (Decimal.TryParse(myRow[0].ToString(), out kilometro))
{
   //The row contained a decimal.
}
else {
   //The row could not be parsed as a decimal.
}
于 2012-12-14T11:09:56.933 に答える
1

追加の回答として、out パラメータをインラインで宣言できるようになりました。

if (decimal.TryParse(myRow[0].ToString(), out decimal outParamName))
{
    // do stuff with decimal outParamName
}
于 2019-11-07T14:29:43.353 に答える