Сценарий
Разберите строку в числовой тип с нулевым значением. Если анализ не увенчался успехом, результат должен быть нулевым; в противном случае результатом должно быть проанализированное значение.
Вопрос
Для этого я всегда использовал следующий простой, но довольно раздражающий метод:
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;
Кто-нибудь знает версию первого бита кода, который является коротким, аккуратным и читаемым как второй бит? Я знаю, что всегда мог написать метод расширения, который инкапсулирует первый бит кода, но мне интересно, есть ли способ сделать то, что я хочу, без метода расширения.