vb.net:选择案例问题

时间:2014-04-14 00:32:18

标签: vb.net select if-statement case

我创建了一个代码,只需将文本拆分成行,然后在文本框中获取每一行,并将其与几个单词进行比较,以便我选择"选择案例"声明做比较 听到我的代码:

这是一行一行的代码

 Dim TEXT As String
    Dim arraytext() As String
        TEXT = textbox1.Text

        arraytext = TEXT.Split(vbCrLf)

        lines = textbox1.LinesCount

        textbox2.text = arraytext(i)

        textbox2.text = textbox2.text.ToUpper()

然后我使用以下方法比较文本中的每一行:

Select Case True
            Case textbox2.text="BANK0"
                textbox3.Text = textbox3.Text & "BANK0" & vbNewLine
            Case textbox2.text="BANK1"
                textbox3.Text = textbox3.Text & "BANK1" & vbNewLine
            Case Else
                assem.Text = assem.Text & ";Error line " & i + 1 & vbNewLine
            end select
            'read next line
            i = i + 1

问题是它只在第一行起作用然后它开始转向其他情况 我尝试了if else语句同样的问题!! 请注意,如果将代码改为此:它就像魅力一样

Select Case True
            Case textbox2.text.contains("BANK0")
                textbox3.Text = textbox3.Text & "BANK0" & vbNewLine
            Case textbox2.text.contains("BANK1")
                textbox3.Text = textbox3.Text & "BANK1" & vbNewLine
            Case Else
                assem.Text = assem.Text & ";Error line " & i + 1 & vbNewLine
            end select
            'read next line
            i = i + 1
请求帮助;提前thx:)

3 个答案:

答案 0 :(得分:0)

如果比较未通过=测试但通过.Contains测试,则最可能的解释是textbox2.text的值不只是“BANK0”,而是包含一个字符串“BANK0”加上至少一个其他角色。

尾随空白很有可能。

答案 1 :(得分:-1)

选择案例为真是错误的。你应该把文本box.text而不是true。然后案例'字'。对不起,我正在用手机写信

答案 2 :(得分:-1)

使用'修剪'方法并停止滥用选择案例(“Select Case True”是一种常见的VB滥用语法)

Select Case textbox2.Text.Trim()
    Case "BANK0"
        textbox3.Text &= "BANK0" & vbNewLine
    Case "BANK1"
        textbox3.Text &= "BANK1" & vbNewLine
    Case Else
        assem.Text &= ";Error line " & i + 1 & vbNewLine
End Select

我为什么相信“Select Case True”的一个小解释是不好的做法:你所做的只是确定第一个'案例'是真的 - 这可以通过使用If / ElseIf / Else语法更清楚地完成,而不是选择情况下。