2011-12-15 3 views
12

Предположим, я хочу создать псевдоним типа в C# с помощью гипотетического синтаксис:Методы для псевдонимов в C#?

Currency = float; 

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

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

Currency = System.Single; 

Отлично, весь код по-прежнему работает.

... месяцев спустя ...

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

Currency = System.Double; 

... лет спустя ...

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

Currency = System.Decimal; 

... лет спустя ...

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

Currency = Money; 

... позже ...

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

Currency = ICurrency; 

И во время всего этого чуда код не сломался.

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

Но кто может предложить синтаксис, который может simulatewhatpeoplehavebeentryingtoaccomplish (includingmyself)?

+2

В принципе, typedef в C++/C –

+1

Предполагаю, вы знаете, что знаете «использование псевдонимов» ...? –

+1

Я использую «псевдонимы типов» («используя псевдонимы»), чтобы сделать код более удобным для последовательного согласования ... однако это звучит как нарушение. Изменены правила (и подпись) о используемом типе. –

ответ

4

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

5

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

Смежные вопросы