-4

私のVS2010は奇妙に動作しているようです(またはそれは私だけかもしれません)!

次の議論で何がそんなに無効なのですか?

ここに画像の説明を入力してください

このエラーが発生するのは私だけですか?

4

5 に答える 5

6

結果を保存するには、実際のdoubleを渡す必要があります。メソッドTryParseは、2番目のパラメーターをとして宣言しますout double。これは、そこに何かを格納することを意図していることを意味します。

get
{
    double d;
    double.TryParse(lat1.Text, out d);
    return d;
}

この振る舞いが「バギー」と見なされるのは皮肉なことです。
裸のCの古代では、そのようなエラーがハードディスクを一掃する可能性がありました。

于 2013-03-27T14:36:34.640 に答える
6

あなたは何をするのか誤解しましTryParseた。lati.Text有効なdoubleであることが確実な場合は、を使用してdouble.Parse(lati.Text)ください。文字列を受け取り、doubleを返します。ゲッターは次のようになります。

get { return double.Parse(lat1.Text); }

この場合、lat1.Textが有効なdoubleでない場合は、例外がスローされて中断されます。これが希望する動作ではない場合はdouble.TryParse、ブール値を返すために使用する必要があります(テキストが正常に解析された場合はtrue、そうでない場合はfalse)。の2番目のパラメーターはTryParse、ホルダー変数である必要があります。ホルダー変数TryParseは、終了後、解析された値を保持します。このアプローチを使用すると、コードは次のようになります。

get
{
    double lat;
    if (double.TryParse(lat1.Text, out lat))
        return lat;
    else
    {
        // This line is reached if lat1.Text is not a valid double.
        // You decide what's best to do here
        return -1;
    }
}
于 2013-03-27T14:49:08.040 に答える
3

-parameterconst doubleにを割り当てることはできません。outそれに変数を与えてdoubleください!

string s = "1.23";
double d = 0.0;
double.TryParse(s, out d);
于 2013-03-27T14:34:44.450 に答える
3

あなたのゲッターはこのようなものでなければなりません

get {
 double result;
 if(!double.TryParse(lati.Text, out result))
    throw new Exception("your message");
 return result;
}
于 2013-03-27T14:38:10.550 に答える
0

TryParseの2番目のパラメーターは変数である必要があります。定数0を渡しています。

于 2013-03-27T14:36:45.980 に答える