如果在vb中的else语句

时间:2012-01-16 11:10:54

标签: vb.net visual-studio-2010

我有一个按钮,我希望它检查显示不同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

但是当我点击按钮时出现以下错误。

“输入字符串的格式不正确。”

6 个答案:

答案 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)

  1. 分号“;”在Dim a As String = "";中需要删除。
  2. VB.net中的
  3. &用于连接而不是逻辑按位运算符。
  4. 更改

    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)

你的代码有几个问题,不幸的是到目前为止所有的答案都没有提到其中至少一个方面。

  1. VB中的分号不分隔语句。

  2. &是字符串连接运算符。要测试连词,请使用AndAlso。要测试析取,请使用OrElse。事实上,即使在C#中,&在这里也是错误的,因为它是按位和,但你想在C#中使用&&的逻辑连接。

  3. 不要将布尔值与文字TrueFalse进行比较,这是无意义的操作。只需直接编写/测试布尔值。

  4. 不要在条件语句周围使用冗余括号...过度嵌套的括号表达式会使代码难以阅读。

  5. 如果您在班级级别声明变量,请使用Private代替Dim

  6. 始终始终在项目设置中启用Option Strict On

  7. 让我们留下:

    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