如何创建除select case方法vb.net之外的命令



制作一款基于文本的游戏。我有一个命令提示符,它由richtextbox作为outputbox和用于输入的文本框文本框。我需要制作一些命令,比如"cls"dir"config"。我的列表中还有很多命令。我只是坚持如何做到这一点以及如何找到解决方案。这是我的代码,我用select case方法移植了一些,但它太原始了。

    Private Sub Output(s As String)
    If s <> "" Then
        nCounter = nCounter + 1
        sCounter = Convert.ToString(nCounter)
        consoleoutputbox.AppendText(vbCrLf & sCounter & " " & s)
    End If
End Sub
Private Sub consoleinputbox_KeyDown(sender As Object, e As KeyEventArgs) Handles consoleinputbox.KeyDown
    Dim Command As String = consoleinputbox.Text
    If e.KeyCode = Keys.Enter Then
        If Command <> "" Then
            Select Case Command
                Case "cls"
                    consoleoutputbox.Clear()
                    consoleinputbox.Clear()
                    consoleinputbox.Focus()
                    nCounter = 0
                Case "help"
                    Output("Welcome to help section. Avaliable commands:")
                    Output("help, cls")
                Case Else
                    Output(Command)
                    consoleinputbox.Clear()
                    consoleinputbox.Focus()
            End Select
        End If
    End If
End Sub

也许Dictionary(Of String, Action)会有所帮助。把你想做的每一件事都放入子程序中,并将它们添加到字典中,命令是关键:

Dim Commands As New Dictionary(Of String, Action)
Commands.Add("test1", New Action(AddressOf test))

然后将字符串作为索引传递给字典,并调用子程序

Commands("test1").Invoke()

一个选项可能是定义一个模块并添加以命令命名的方法。然后,您可以使用Reflection查找并调用用户作为命令输入的名称的方法。

相关内容

  • 没有找到相关文章

最新更新