从String转换为Boolean Vb.net

时间:2018-02-27 10:02:17

标签: vb.net logical-operators boolean-expression

我想用布尔值和二进制逻辑运算符(和/或)来评估String。 当我写Dim Expression = ((True And False) Or True)然后"表达"的值会是真的。 但是,当我写Dim Expression = "((True And False) Or True)"并尝试使用像MsgBox(Convert.ToBoolean(Expression))之类的Convert.ToBoolean()将字符串转换为布尔值时,我得到一个错误说明: 字符串未被识别为有效布尔。 ,如picture中所示。 之前的所有帖子都涉及仅包含" True"或"错误"。但我很少发现一个帖子处理包含括号和多个运算符的表达式为"((真或假)和真)"或更复杂的表达。是否支持convert.ToBoolean函数,如果是,为什么我收到此错误?

1 个答案:

答案 0 :(得分:0)

使用Microsoft脚本控件评估表达式有一种全面的方法..

右键点击您的项目,然后选择Add

在子菜单中,选择Reference

在显示的窗口中,左键单击COM

向下滚动,直至看到MicrosoftScriptControl 1.0,然后双击它。

然后点击窗口右下角的Ok

此函数接受一个字符串并使用VBScript计算字符串表达式。你当然可以根据自己的需要调整它。

Private Function EvaluateBoolean(formula As String) As Boolean
    Dim sc As New MSScriptControl.ScriptControl
    'SET LANGUAGE TO VBSCRIPT
    sc.Language = "VBSCRIPT"
    'ATTEMPT MATH
    Try
        Return Convert.ToBoolean(sc.Eval(formula))
    Catch ex As Exception
        'SHOW THAT IT WAS INVALID
        MessageBox.Show("Invalid Boolean expression")
    End Try
End Function