user3194012
user3194012

Reputation: 29

How to evaluate an expression stored in a string?

I need to do this....

dim mVar as String = ""
dim mVar1 as double
dim mVar2 as double

mvar= " mVar1> mVar2 "

if mvar Then
.
.
.
End IF

Is it supported in vb.net?

If yes then how?

mvar will have different conditions as pert my requirement.

Upvotes: 1

Views: 84

Answers (1)

sloth
sloth

Reputation: 101072

Instead of using a String, you can use a Delegate for your conditions.

Example:

Dim var1 As Double = 14.03
Dim var2 As Double = 13.99

Dim biggerThan = Function(a As Double, b As Double) a > b
Dim areEqual = Function(a As Double, b As Double) a = b

If biggerThan(var1, var2) Then
    Console.WriteLine("var1 > var2")
Else If areEqual(var1, var2) Then
    Console.WriteLine("var1 = var2")
End If

var1 = 13.99

If biggerThan(var1, var2) Then
    Console.WriteLine("var1 > var2")
Else If areEqual(var1, var2) Then
    Console.WriteLine("var1 = var2")
End If

Output:

var1 > var2
var1 = var2

If you really want or have to use strings, take a look at the Flee library.

Example:

Dim context = New ExpressionContext()
context.Variables("var1") = 14.03
context.Variables("var2") = 13.99

Dim result = context.CompileGeneric(Of Boolean)("var1 > var2").Evaluate()
Console.WriteLine(result)

Output:

True

Upvotes: 1

Related Questions