VB.NET逻辑表达式计算器

发布于 2024-09-02 23:17:55 字数 501 浏览 6 评论 0原文

我需要测试字符串中保存的逻辑表达式,看看它的计算结果是 TRUE 还是 FALSE。(srig 是动态构建的)
例如,结果字符串可能包含“'dog'<'cat' OR (1>4 AND 4<6)”。字符串中没有变量,它将进行逻辑计算。它只会包含简单的运算符 = > < >< >= <= 和 AND 、 OR 以及左括号和右括号、字符串常量和数字。 (转换为正确的语法 && || 等)

我目前通过创建 jscipt 函数并将其编译成 .dll 来实现这一点。然后我在 VB.NET 项目中引用该 .dll。

class ExpressionEvaluator  
{  
  function Evaluate(Expression : String)  
  {  
    return eval(Expression);  
  }  
 }  

是否有使用内置 .NET 函数或 Lamdba 表达式的更简单的方法。

I need to test a logical expression held in a string to see if it evaluate to TRUE or FALSE.(the strig is built dynamically)
For example the resulting string may contain "'dog'<'cat' OR (1>4 AND 4<6)". There are no variables in the string, it will logically evaluate. It will only contain simple operators = > < >< >= <= and AND , OR and Open and Close Brackets, string constants and numbers. (converted to correct syntax && || etc.)

I currently acheive this by creating a jscipt function and compiling it into a .dll. I then reference the .dll in my VB.NET project.

class ExpressionEvaluator  
{  
  function Evaluate(Expression : String)  
  {  
    return eval(Expression);  
  }  
 }  

Is there a simpler method using built in .NET functions or Lamdba expressions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

丢了幸福的猪 2024-09-09 23:17:55

我尝试了该项目的演示,您可能会喜欢它而不是当前的评估方法。请注意,它不使用 lamdba 表达式或任何构建它的 .NET 方法。

http://web1.codeproject.com/KB/vb/expression_evaluator。 aspx?msg=1151870

I tried the demo out for this project and you might like it over you current method of evaluating. Note, it doesn't use lamdba expressions or any build it .NET methods.

http://web1.codeproject.com/KB/vb/expression_evaluator.aspx?msg=1151870

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文