我允许用户输入具有代表单行c#复杂运算符的唯一键的字符串(一行代码如' 2 +(a - (x&amp;&amp; y?1:7)) '。运营商可以使用Nullable<bool>
和Nullable<double>
个变量。
一开始,我有Dictionary<string, object>
个预定义的值。
用户可以使用此变量和标准c#运算符:+, - ,*,/,&amp;&amp;,||,!,(),&gt;,&gt; =,&lt;,&lt; =,==,!= ,?a:b,??。
我需要重用c#运算符优先级机制和编译错误,警告和消息(编译后输出)
var x = new Nullable<bool>(true);
之类的代码或其他东西)?答案 0 :(得分:2)
通常,您使用表达式解析器(例如NCalc)来执行此操作。它们通常具有相当容易适应您的要求的API。
是否有可能以俄语收到错误消息?
如果使用现有库,这可能是您最难的要求。但是,可以修改NCalc或其他开源表达式库解析器之一以提供俄语错误消息。