Методы сглаживания в 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 и реализуйте (или делегируйте) соответствующие операторы, а затем просто измените класс, используемый для хранения данных внутри, когда это необходимо.