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