VB.NET анализатор логических выражений - PullRequest
0 голосов
/ 21 мая 2010

Мне нужно проверить логическое выражение, содержащееся в строке, чтобы увидеть, оценивается ли оно как ИСТИНА или ЛОЖЬ (стриж строится динамически)
Например, результирующая строка может содержать «собака» <кошка ИЛИ(1> 4 И 4 <6) ".В строке нет переменных, она будет логически вычислена.Он будет содержать только простые операторы => <> <> = <= и AND, OR и открывающие и закрывающие скобки, строковые константы и числа.(преобразовано в правильный синтаксис && || и т.Затем я ссылаюсь на .dll в моем проекте VB.NET. </p>

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

Существует ли более простой метод, использующий встроенные функции .NET или выражения Lamdba.

Ответы [ 2 ]

1 голос
/ 22 мая 2010

Я опробовал демо для этого проекта, и вам может понравиться текущий метод оценки. Обратите внимание, что он не использует выражения lamdba или какие-либо методы сборки .NET.

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

0 голосов
/ 22 мая 2010

Попробуйте: http://www.codeproject.com/KB/cs/ExpressionEval.aspx

Дополнительные указания: http://www.thefreakparade.com/2008/07/evaluating-expressions-at-runtime-in-net-c/

Хороший: http://flee.codeplex.com/ Логический пример, который вы ищете: http://flee.codeplex.com/wikipage?title=BooleanExpression&referringTitle=Examples (игнорируйте переменную, добавляющую часть, поскольку вы не ищете переменную)

...