.net – 如何使用Case检测参数

前端之家收集整理的这篇文章主要介绍了.net – 如何使用Case检测参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试创建一系列可以获取参数的命令.拿起每个单独的命令我正在使用Select Case这个问题是如果我使用Case Else,我无法感知’参数'(字符串的第二部分).如果我不使用Case Else,那么我无法处理不正确的命令并将它们发送到所需的程序.

例如:

Private Sub AllocateType(ByVal Command As String)

    Select Case Command
        Case "Eat"
            'Call Eat procedure
        Case "Use"
            'Call Use procedure
        Case "Quit"

        Case "Pause"

        Case "Go"

        Case Else
            Errors() 'Error handling procedure
    End Select

End Sub

如果命令是’Brrr​​rr’,它将调用Errors().然而,如果命令是’Eat Food’,它仍然会调用Errors()并且不将参数传递给Eat程序.

编辑,因为它现在不起作用.
我已经尝试了所建议的内容,但我仍然有完全相同的问题.似乎Command.StartsWith和Command.Contains都不起作用,因为如果我尝试输入’Eat Food’,它仍然不会将其视为一个案例.

例:

Select Case Command
    Case Command.Contains("Eat")
        Output("TESTING")
        If Len(Command) > 4 Then
            Command = Mid(Command,4,(Len(Command) - 4))
            Interaction(Command)
        Else
            Output("Eat What?")
        End If
    Case "Eat"
        Output("Eat What?")
    Case Command.StartsWith("Use")
        If Len(Command) > 4 Then
            Command = Mid(Command,(Len(Command) - 4))
            Interaction(Command)
        Else
            Output("Use What?")
        End If
    Case "Use"
        Output("Use What?")
        'Case Else
        '    Errors()
End Select
没错,你可以保留你的Select Case块,但由于你没有检查String的完全相等,你应该根据你的目标检查Command.Contains(“Eat”)或Command.StartsWith(“Eat”).

侮辱;

Private Sub AllocateType(ByVal Command As String)

    Select Case True
        Case Command.StartsWith("Eat")
            'Call Eat procedure
        Case Command.StartsWith("Use")
            'Call Use procedure
        Case Command.StartsWith("Quit")
        Case Command.StartsWith("Pause")
        Case Command.StartsWith("Go")
        Case Else
            Errors() 'Error handling procedure
    End Select

End Sub

猜你在找的VB相关文章