C#中的别名技术?

时间:2011-12-15 21:08:35

标签: c# alias

假设我想使用假设语法在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;

......多年后......

国际申请?货币代码。 Hmmmm。 Thank you CodeProject

 Currency = Money;

...以后...

噢,模式和实践。让我们混淆一些代码:

 Currency = ICurrency;

在所有这些无意义的代码中没有破坏。

我知道C#不支持encapsulation这个级别,并且使用我编写的语法来保持不动。

但有人可以提出一种语法simulate what people have been trying to {{3} (accomplish including)?

2 个答案:

答案 0 :(得分:5)

创建一个名为Currency的类并实现(或委托)适当的运算符,然后在需要时更改用于在内部存储数据的类。

答案 1 :(得分:4)

您可以像using这样使用using Currency = System.Single;,但必须在每个文件中执行此操作。但比在整个应用程序中搜索单个内容更容易改变。