Константы в веб-приложении на C #

2

Имеет ли смысл создавать константу для стоимости копейки? Например, если мне нужно было уменьшить сумму на копейку. Как вы думаете, это более читаемо, если в коде сказано:

amount -= Constants.StandardAmounts.Penny

Или мне даже не нужно беспокоиться и просто использовать .01.

  • 0
    ваше приложение использует только валюту США?
Теги:
constants

4 ответа

11
Лучший ответ

В вашем конкретном примере эта конкретная константа на самом деле не имеет смысла. Два наиболее вероятных сценария для вычитания копейки:

  • Выполнение некоторых очень специфических требований к логике бизнеса/домена:

    Если это так, константа не должна быть Penny = .01, но StandardDeduction = .01

  • Обработайте более произвольные/текущие математические данные:

    Если да, просто используйте числа.

В любом случае "Пенни" бессмысленна. Он не добавляет никакой полезной информации. Это как объявление constant HelloWorld = "HelloWorld". Каждый программист, который даже имеет смутное представление о том, что делает ваша заявка (финансовые расчеты), понимает, что такое .01. Константы должны управляться по назначению.

1

Я бы использовал константу. Не потому, что стоимость копейки изменится, а просто для ясности будущим сопровождающим приложения.

EDIT: Думаю, я также рассмотрю количество мест, в которых будет использоваться это значение.

0

Я бы поставил декремент в метод, а затем назвал этот метод соответствующим образом (т.е. держаться подальше от копейки в названии). Так, например, если у вас есть приложение для супермаркетов, и каждый клиент получает скидку в 1 копейку, вы можете просто позвонить DeductCustomerLoyaltyAmount(). Это имеет следующие преимущества:

  • Любой, кто читает код, теперь имеет полное понимание того, почему происходит декремент.

  • Вы можете изменить значение декремента, не влияя на значение метода.

  • Ваш код глобализации (для обработки других валют) является централизованным.

0

Вы можете даже изменить его для лучшей читаемости:

amount -= Standards.USCurrency.Penny

Ещё вопросы

Сообщество Overcoder
Наверх
Меню