Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vb.net:选择案例问题_Vb.net_Select_If Statement_Case - Fatal编程技术网

vb.net:选择案例问题

vb.net:选择案例问题,vb.net,select,if-statement,case,Vb.net,Select,If Statement,Case,我创建了一个代码,只需将一个文本拆分成几行,然后将每一行放在一个文本框中,并将其与几个单词进行比较,因此我选择“selectcase”语句进行比较 这是我的密码: 这是一行一行给我的代码 Dim TEXT As String Dim arraytext() As String TEXT = textbox1.Text arraytext = TEXT.Split(vbCrLf) lines = textbox1.LinesCount

我创建了一个代码,只需将一个文本拆分成几行,然后将每一行放在一个文本框中,并将其与几个单词进行比较,因此我选择“selectcase”语句进行比较 这是我的密码:

这是一行一行给我的代码

 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
问题是,它只在第一行工作,然后开始转到else情况 我试着用if-else语句解决同样的问题!! 请注意,如果我将代码更改为:它的工作方式类似于charm

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提前:)

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


尾随空格可能是一种可能性

使用“Trim”方法并停止误用Select Case(“Select Case True”是VB常见的语法滥用)


关于为什么我认为“选择大小写为真”是一种不好的做法的一点解释:您所做的只是确定第一个为真的“大小写”——这可以通过使用If/ElseIf/Else语法而不是选择大小写来更清楚地完成。

听起来您只需要使用“Trim”方法:例如,Case textbox2.Text.Trim()=“BANK0”
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