我有一个按钮,我希望它检查显示不同msgbox的条件。
以下是我的代码:
Dim a As String = "";
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If ((a = "a") & (DetailsSelectedComment.Visible = True)) Then
MsgBox("Have")
Else
MsgBox("No have")
End If
End Sub
但是当我点击按钮时出现以下错误。
“输入字符串的格式不正确。”
答案 0 :(得分:1)
我不是VB专家 - 但我认为这是因为
If ((a = "a") & (DetailsSelectedComment.Visible = True))
将&
替换为And
。
参见& Operator in VB - 它是一个字符串连接运算符 - 不是布尔运算。
答案 1 :(得分:0)
首先从代码中删除";"
,同时声明变量"a"
Dim a As String = "";
至Dim a As String = ""
要在VB.Net中进行和操作,我们应该使用AND和ANDALSO
答案 2 :(得分:0)
您应该使用AND
运算符。 &
用于在VBnet中进行连接。
Dim a As String = ""
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If ((a = "a") AND (DetailsSelectedComment.Visible = True)) Then
MsgBox("Have")
Else
MsgBox("No have")
End If
End Sub
答案 3 :(得分:0)
Dim a As String = "";
中需要删除。 &
用于连接而不是逻辑按位运算符。更改
If ((a = "a") & (DetailsSelectedComment.Visible = True)) Then
到
If ((a = "a") And (DetailsSelectedComment.Visible = True)) Then
答案 4 :(得分:0)
Dim a As String = ""
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If ((a = "a") ANDALSO (DetailsSelectedComment.Visible = True)) Then
MsgBox("Have")
Else
MsgBox("No have")
End If
End Sub
&& operator不是二进制逻辑运算符,仅用于字符串连接。
您可以使用AND或ANDALSO(如果第一个条件为假,ANDALSO将终止该语句,尽管是AND,如果第一个条件为假,它将检查第二个条件)
答案 5 :(得分:0)
你的代码有几个问题,不幸的是到目前为止所有的答案都没有提到其中至少一个方面。
VB中的分号不分隔语句。
&
是字符串连接运算符。要测试连词,请使用AndAlso
。要测试析取,请使用OrElse
。事实上,即使在C#中,&
在这里也是错误的,因为它是按位和,但你想在C#中使用&&
的逻辑连接。
不要将布尔值与文字True
或False
进行比较,这是无意义的操作。只需直接编写/测试布尔值。
不要在条件语句周围使用冗余括号...过度嵌套的括号表达式会使代码难以阅读。
如果您在班级级别声明变量,请使用Private
代替Dim
。
始终始终在项目设置中启用Option Strict On
。
让我们留下:
Private a As String = ""
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If a = "a" AndAlso DetailsSelectedComment.Visible Then
MsgBox("Have")
Else
MsgBox("No have")
End If
End Sub