シナリオ
文字列を null 許容の数値型に解析します。解析が失敗した場合、結果は null になります。それ以外の場合、結果は解析された値になります。
質問
これを達成するために、私は常に次の単純だが長く面倒な方法を使用してきました。
string numericString = "...";
decimal? numericValue;
decimal temp;
if (decimal.TryParse(numericString, out temp))
{
numericValue = temp;
}
else
{
numericValue = null;
}
以下はコンパイルされないため、上記の方法を使用します。
decimal temp;
decimal? numericValue = decimal.TryParse(numericString, out temp) ? temp : null;
コードの最初のビットが、2 番目のビットと同じくらい短く、きちんとしていて、読みやすいバージョンを知っている人はいますか? コードの最初のビットをカプセル化する拡張メソッドをいつでも作成できることはわかっていますが、拡張メソッドなしで必要なことを行う方法があるかどうか疑問に思っています。