How to sense parameters with Case

.net, select-case, vb.net

Solution

True, you can keep your `Select Case` block, but since you are not checking for exact equality of `String` you should check for `Command.Contains("Eat")` or `Command.StartsWith("Eat")` depending on your goal

for insance;

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

Problem

I'm trying to create a series of commands that can take parameters. To pick up each separate command I am using `Select Case` The problem with this is I can't sense the 'parameters' (the second part of the string) if I use `Case Else`. If I don't use `Case Else` then I can't handle incorrect commands and send them off to the required procedure. For Example: ``` 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 ``` If the command was 'Brrrrr', it would call `Errors()`. Yet if the command was 'Eat Food', it would still call `Errors()` and not pass the parameters to the `Eat` procedure. Edit, because it now doesn't work. I've tried what was suggested, but I still have exactly the same problem. It seems both `Command.StartsWith` and `Command.Contains` don't work because if I try to enter 'Eat Food', it still doesn't recognise it as a case. Example: ``` 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, 4, (Len(Command) - 4)) Interaction(Command) Else Output("Use What?") End If Case "Use" Output("Use What?") 'Case Else ' Errors() End Select ```

Original source