Way*_*yne 5 c# int dsl casting division
如何强制加倍x = 3/2; 在没有D后缀或铸造的情况下返回1.5 in x?是否有任何类型的操作员过载可以完成?还是一些编译器选项?
令人惊讶的是,由于以下原因,添加铸件或后缀并不是那么简单:
业务用户需要编写和调试自己的公式.目前,C#正在被用作DSL(领域特定语言),因为这些用户不是计算机科学工程师.所以他们所知道的是如何编辑和创建几种类来保存他们的"业务规则",这些规则通常只是数学公式.
但他们总是假设双x = 3/2; 将返回x = 1.5但是在C#中返回1.
A.他们总是忘记这一点,浪费时间调试,打电话给我寻求支持,我们解决它.B.他们认为这非常丑陋并且损害了他们的业务规则的可读性.
如您所知,DSL需要更像自然语言.
是.我们计划转移到Boo并基于它建立一个DSL,但这是在未来.
是否有一个简单的解决方案,使双x = 3/2; 通过类外部的东西返回1.5,这样对用户来说是不可见的?
谢谢!韦恩
不,没有可以使3 / 2回报1.5的解决方案.
考虑到约束的唯一解决方法是阻止用户在公式中使用文字.鼓励他们使用常数.或者,如果他们真的需要使用文字,鼓励他们使用带小数点的文字.