我想用布尔值和二进制逻辑运算符(和/或)来评估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函数,如果是,为什么我收到此错误?
答案 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