У меня есть набор методов, которые принимают пользовательский ввод как строки и анализируют его на десятичные знаки, ints и т. Д. В заголовке каждого метода. Итак, я повторил тот же самый код много раз в каждом методе, например:TryParse - лучшие практики
public ..... CreateOrder(....., string rawSourceAmount)
{
decimal? sourceAmount2 = rawSourceAmount.
TryToDecimal(XUtils.DecimalFormat(2)); // extension method, wrapper of Decimal.TryParse, returns null if fails
if (sourceAmount2 == null)
throw new XBadSourceAmountException(
sourceSystem.Id, rawSourceAmount);
decimal sourceAmount = sourceAmount2.Value;
..........
}
Почему у меня есть sourceAmount2
и sourceAmount
? Потому что позже в теле метода я активно использую sourceAmount, и я не хочу каждый раз писать sourceAmount.Value
. Есть ли способ упростить этот шаблонный код?
Итак, задача такова: у меня есть string rawSourceAmount
. Мне нужно decimal sourceAmount
и место, где можно различить исключение. Мне не нужен sourceAmount2
.
Ладно. Вы дали мне идею, описанную @ Selman22. Спасибо. – Denis