C#中的别名技术?

Ian*_*oyd 12 c# alias

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

 Currency = float;
Run Code Online (Sandbox Code Playgroud)

然后我离开并创建几千个使用Currency类型的文件.

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

 Currency = System.Single;
Run Code Online (Sandbox Code Playgroud)

很好,所有代码仍然有效.

...几个月后...

等等,我得到一些奇怪的舍入错误.哦,这就是为什么,System.Single只有7位数的精度.让这个数字达到15位:

 Currency = System.Double;
Run Code Online (Sandbox Code Playgroud)

...多年后...

哦,浮点不准确; 乘法$0.0011/unit * 217,384 units暴露了使用浮点的一些限制.会计师反对"会计违规行为".没问题:

Currency = System.Decimal;
Run Code Online (Sandbox Code Playgroud)

...多年后...

国际申请?货币代码.Hmmmm.谢谢CodeProject:

 Currency = Money;
Run Code Online (Sandbox Code Playgroud)

...后来...

噢,模式和做法.让我们混淆一些代码:

 Currency = ICurrency;
Run Code Online (Sandbox Code Playgroud)

在所有这些废话代码中没有破坏.

我知道C#不支持这种级别的封装和使用我编写的语法的重现性.

但是,任何人都可以提出一个语法,可以模拟 什么 已经 尝试 完成(包括 我自己)?

Dyl*_*ith 5

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


Krz*_*tof 4

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


归档时间:

查看次数:

249 次

最近记录:

11 年 前