0

変換の助けが必要です。文字列を double に変換したいので、最初にこのようにしました。

double meterStartvalue = double.Parse(startMeterReading.Text);

これは、テキスト ボックスに何かを入力する限り問題ありません。そして、それは良くありません。だから私はこのようにしようとしました:

double.TryParse(startMeterReading.Text, out meterStartvalue);

TryParseを実行すると、次のエラーが発生します。

引数 2: 'out meterStartvalue' から 'out double' に変換できません

'double.TryParse(string, out double)' に最適なオーバーロードされたメソッドの一致には、無効な引数が含まれています

コードのいくつかの場所でこれを使用しているため、 meterStartvelue コンテキストが存在しないというエラーも発生します。

4

2 に答える 2

9

メソッドを呼び出す前に宣言する必要がありmeterStartValueます。そうしないと、コンパイラーは何について話しているのかわかりません。

double meterStartValue;
if (double.TryParse(startMeterReading.Text, out meterStartvalue))
{
    // Yes, we managed to parse the text.
}
else
{
    // Failed to parse it
}

初期値を与える必要はないことに注意してください。ただし、メソッドが返されたときに確実に割り当てられます (解析が失敗した場合は値 0)。

残念ながら、単一のステートメントで変数を宣言し、(変数を引数として使用して) メソッドを呼び出す方法はありません。

于 2013-06-07T14:18:08.387 に答える
0

meterStartValueコードで使用する前に変数を宣言するのを忘れているようなにおいがします。

このようにしてみてください。

double meterStartValue;

if (double.TryParse(startMeterReading.Text, out meterStartvalue))
{
    // Success
}

Double.TryParse返されるのでboolean、if ステートメントで会話が成功したかどうかを確認できます。

Return Value
Type: System.Boolean
true if string was converted successfully; otherwise, false.
于 2013-06-07T14:19:05.023 に答える