我在VB.net中编写终端代码,当我输入'help'并按回车键时,没有任何反应。它应该显示'这是唯一的命令。 :P”
我似乎没有更具体,所以让我解释一下发生了什么。
我输入下面的代码,我执行了应用程序,然后输入了'help'然后我点击了回车键,然后没有任何事情发生在所有。
以下是整个代码:
Private Sub RichTextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles RichTextBox1.KeyPress
Dim lines = RichTextBox1.Lines
Dim num = lines
Dim textlength = RichTextBox1.TextLength
If Asc(e.KeyChar) = 13 Then
If num.Last.ToString() = "help" Then
RichTextBox1.AppendText("This is the only command. :P\r\n")
End If
End If
End Sub
请帮忙!
答案 0 :(得分:2)
所以,在你的代码上附加了一个调试器,很明显问题是什么......当你进行比较时,lines.Last()
是一个空字符串。
有很多方法可以获得倒数第二行。我更喜欢LINQ,所以这里是你的代码整理,使用案例和文化不敏感的字符串比较(所以你也可以输入Help
)...
Private Sub RichTextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles RichTextBox1.KeyPress
If Asc(e.KeyChar) = 13 Then
If String.Equals(RichTextBox1.Lines.Reverse.Skip(1).First(),
"help",
StringComparison.InvariantCultureIgnoreCase) Then
RichTextBox1.AppendText(String.Format("This is the only command. :P{0}", Environment.NewLine))
End If
End If
End Sub
我还使用Environment.NewLine
使您的代码更具可移植性,并String.Format()
以不会无缘无故地占用内存的方式组合字符串。这个例子有点过分,但它显示了应该如何完成。
值得注意的是,使用调试器对于任何开发人员来说都是一项至关重要的技能(好吧,有一种替代方法是广泛的日志记录,但您需要知道这两种方法)。您将需要此技能来解决任何问题。
如果您不熟悉这个概念,调试就像暂停您的程序并让您检查正在发生的事情,然后一次运行一个命令来查看程序正在做什么。
答案 1 :(得分:0)
这不是一个真正的答案,但我注意到您正在编写代码以错误地创建新行
你这样做了:
RichTextBox1.AppendText("This is the only command. :P\r\n")
虽然它应该是这样的:
RichTextBox1.AppendText("This is the only command. :P" & vbCrLf)
答案 2 :(得分:0)
尝试使用代码并删除
domainsRight[rIndex][cIndex]
并设置这行代码
If num.Last.ToString() = "help" Then
End If
工作正常。
希望这有帮助。