设想
将字符串解析为可为空的数值类型。如果解析不成功,结果应该为空;否则结果应该是解析后的值。
问题
为了做到这一点,我一直使用以下简单但冗长烦人的方法:
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;
有人知道第一个代码的版本和第二个代码一样短、整洁和可读吗?我知道我总是可以编写一个封装第一部分代码的扩展方法,但我想知道是否有任何方法可以在没有扩展方法的情况下做我想做的事情。