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#不支持这种级别的封装和弹性语法。
但是谁能建议一种语法可以模拟人们(包括我自己)一直试图完成的 ?
创建一个名为Currency的类,并实现(或委托)适当的操作符,然后只需在需要时更改用于内部存储数据的类。
您可以像这样使用using
: using Currency = System.Single;
,但是您必须在每个单独的文件中这样做。