値を変換するためにParseを使用する1.1ビルドシステムがあります(現在は3.5です)。
string myString = String.Empty;
double myValue = double.Parse(myString);
FormatExceptionをスローします(私は0.0を期待していました)。
2.0以降を使用して書き直した場合
string myString = String.Empty;
double myValue;
if (double.TryParse(myString, out myValue))
//do something
必要な0.0を取得しましたが、残念ながら、(elseツリーで)意味のあるエラーメッセージを取得する可能性がありません。
なぜParseにエラーが発生し、TryParseに期待値が表示されるのですか?TryParseからエラーメッセージを取得する方法はありますか(時間は問題ではありません)?
私はそれをそのように回避したくありません:
if...thenを使用してエラーを回避します
myValue = myString.Length == 0 ? 0.0 : double.Parse(myString);
エラーが発生した場合の2回の呼び出し
if (!double.TryParse(myString, out myValue)) myValue = double.Parse(myString);