3

私のコードの多くの場所で、私はこれを持っています:

try
{
    price = double.Parse(sPrice.Replace(",", "."), CultureInfo.InvariantCulture);
}
catch
{
    price  = 0;
}

try ブロックで例外がスローされた場合、キャッチされるまでに時間がかかることをどこかで読みました。

したがって、次のように、parse の代わりに tryparse を使用したいと思います。

if (!double.TryParse(sPrice, out price))
{
     price  = 0;
}

これは良い習慣ですか?時間は短くなりますか?

4

2 に答える 2

3

はい、TryParseより高速です。

Parseただし、多くの無効な入力文字列を含むタイトなループで呼び出されることが予想される場合を除き、これは時期尚早の最適化のように思えます。

速度ではなく、要件と取得するデータの種類に応じて選択する必要があります。また、別のオプションを検討してください。Convert.ToDouble

于 2013-03-05T09:33:52.660 に答える
1

使ってみて感じた2​​つのメリットTryParse

  1. に比べて速いです。try.. catch...
  2. 変数には、割り当てたい値またはデフォルトの値のいずれかが常に含まれます。したがって、変数が TryParse に渡されると、変数を直接使用できます
于 2013-03-05T09:33:11.477 に答える