Методы сглаживания в C#?

предположим, я хочу создать псевдоним типа в C#, используя гипотетический синтаксис:

 Currency = float;

затем я ухожу и создаю несколько тысяч файлов, которые используют Currency тип.

тогда я понимаю, что предпочитаю использовать типы FCL:

 Currency = System.Single;

отлично, весь код все еще работает.

...несколько месяцев спустя...

Подождите, я получаю некоторые странные ошибки округления. Вот почему,System.Single только 7 цифр точность. Позволяет до 15 цифр:

 Currency = System.Double;

...годы спустя...

Ооооо, с плавающей точкой не точно; умножение .0011/unit * 217,384 units предоставляет некоторые ограничения использования с плавающей запятой. А бухгалтеры-ярые противники "бухгалтерских нарушений". Нет проблем:

Currency = System.Decimal;

...годы спустя...

международные заявки? Код валюты. Хммм. спасибо CodeProject:

 Currency = Money;

...позже...

Ooo, шаблоны и практики. Давайте запутаем часть этого кода:

 Currency = ICurrency;

и во время всей этой ерунды код не ломался.

Я знаю, что c# не поддерживает этот уровень инкапсуляция и resilency с синтаксисом, который я составил.

но может ли кто-нибудь предложить синтаксис, который может моделирование что человек есть было попытка to выполнить (в том числе сам)?

2 ответов


можно использовать using вот так: using Currency = System.Single;, но вы должны сделать это в каждом отдельном файле. Но все же проще изменить, чем искать одиночное во всем приложении.


создайте класс Currency и реализуйте (или делегируйте) соответствующие операторы, а затем просто измените класс, используемый для хранения данных внутри, когда это необходимо.