Ищите хороший Тип данных Money для .NET, который поддерживает валюты и курсы обмена (с соответствующим поведением и операциями).
- Примечание. Я начал искать исходный код, который был напечатан в книге Разработка, основанная на тестах, по примеру автора Кент Бек - он разрабатывает хорошая денежная концепция. Не удалось найти полный источник в Интернете. Книга не содержит одного единственного листинга - вместо этого он разрабатывает исходный код в течение продолжительности книги.
Хотя книга не идет глубже, мне также хотелось бы, чтобы класс Money поддерживал различные механизмы округления, потому что это также варьируется среди финансовых учреждений по всему миру.
Изменить 1: Уточнения
В разделе "Деньги" я имею в виду тип данных .NET, который я могу использовать для поддержки денег и его операций, в комплекте с валютной поддержкой и расчетами обменного курса. Что-то вроде этого является абстракцией более высокого уровня и может внутренне использовать примитивный тип данных. Также он может рассчитывать на набор классов, таких как: Money, ExchangeRate, Bank и т.д.
Это может быть тип значения (т.е. структура) или ссылочный тип (т.е. класс), но в любом случае он будет полным и поддерживает вышеупомянутые функции.
Изменить 2: Цели типа данных денег
(Это также показывает, почему необработанный десятичный, int или другой примитивный тип не будет достаточным для всех потребностей в деньгах)
Цели типа данных Money:
- Функции безопасности (т.е. предотвращают арифметику для разных типов валют).
- Сохраните тип валюты со значением (например, AUD, US, DKK).
- Сохраняйте данные форматирования (например, десятичная группировка, символы валюты и т.д.).
- Поставщики конверсий (например, обменный курс), чтобы помочь завершить решение.
- Уменьшение нескольких валют в выражении для достижения результата.
Примечание. Изменение значений данных, таких как обменные курсы, может быть загружено из внешнего источника и использоваться. Этот вопрос не предполагает, что любая динамика жестко закодирована в понятие "Деньги".