如何强制加倍 x = 3 / 2; 在没有 D 后缀或强制转换的情况下返回 1.5 in x?是否有任何类型的运算符重载可以完成?还是一些编译器选项?
令人惊讶的是,添加强制转换或后缀并不是那么简单,原因如下:
业务用户需要编写和调试自己的公式。目前 C# 正在像 DSL(领域特定语言)一样被使用,因为这些用户不是计算机科学工程师。所以他们所知道的就是如何编辑和创建几种类型的类来保存他们的“业务规则”,这些规则通常只是数学公式。
但他们总是假设 double x = 3 / 2; 将返回 x = 1.5,但在 C# 中返回 1。
A. 他们总是忘记这一点,浪费时间调试,打电话给我寻求支持,我们修复它。B. 他们认为这很丑陋并且损害了他们业务规则的可读性。
如您所知,DSL 需要更像自然语言。
是的。我们正计划迁移到 Boo 并基于它构建一个 DSL,但那是在路上。
是否有一个简单的解决方案可以使 double x = 3 / 2; 通过类外部的东西返回 1.5 所以它对用户不可见?
谢谢!韦恩