1. ホーム
  2. c#

エレガントなTryParse

2023-10-21 19:36:05

質問

を使うたびに感じるのですが TryParse を使うたびに、どこか醜いコードになるような気がします。主に私はこのように使っています。

int value;
if (!int.TryParse(someStringValue, out value))
{
    value = 0;
}

すべての基本的なデータ型をパースするための、よりエレガントなソリューションはありますか?具体的には、1行でフェールセーフパースを行う方法はありますか?フェールセーフによって、私は例外なく解析が失敗した場合にデフォルト値を設定することを想定しています。

ところで、これは解析が失敗しても、デフォルト値を使うだけで何らかのアクションを行わなければならない場合のためです。

どのように解決するのですか?

これは有効で、シングルライナーが好きな人には好まれるかもしれません。

int i = int.TryParse(s, out i) ? i : 42;

これは i42 という文字列をパースできない場合 s を設定し、それ以外の場合は i = i .