c#中的混叠技术

本文关键字:技术 | 更新日期: 2023-09-27 18:18:12

假设我想在c#中使用假设的语法创建一个类型的别名:

 Currency = float;

然后我创建了几千个使用Currency类型的文件。

然后我意识到我更喜欢使用整箱类型:

 Currency = System.Single;

非常好,所有代码都可以正常运行。

…个月后…

等等,我得到一些奇怪的舍入错误。哦,这就是为什么,System.Single只有7位精度。将其设置为15位:

 Currency = System.Double;

…年后…

Ohhhh, 浮点数不精确;$0.0011/unit * 217,384 units的乘法暴露了使用浮点数的一些局限性。会计师是反对"会计违规行为"的顽固分子。没问题:

Currency = System.Decimal;

…年后…

国际应用程序?货币代码。嗯。谢谢你CodeProject:

 Currency = Money;

…后来…

哦,模式和实践。让我们混淆其中的一些代码:

 Currency = ICurrency;

在所有这些无意义的代码没有被打破。

我知道c#不支持这种级别的封装和弹性语法。

但是谁能建议一种语法可以模拟人们(包括我自己)一直试图完成的 ?

c#中的混叠技术

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

您可以像这样使用using: using Currency = System.Single;,但是您必须在每个单独的文件中这样做。