如何解决使用文本框内的字符串调用方法 进一步编辑案例
我正在用 C# 制作一个简单的猜谜游戏,其中计算机生成一个 1-10 之间的数字,并且我同时获得了一个 clickEvent 和一个 KeyPressedEvent(到 Enter 键)来“提交”猜测。
我正在尝试这样做,以便您只需在文本字段中输入“reset”并按 Enter 键即可调用 StartNewGame() 方法,但它似乎并未激活该方法。
我都试过了
if (userReset.Equals("reset"))
{
StartNewGame();
}
和
if (userReset == "reset" )
{
StartNewGame();
}
但它似乎没有调用 StartNewGame()
我在 Windows 10 上使用 Visual Studio 2019。
解决方法
代码的问题是变量userReset
被设置为空字符串,没有别的:
String userReset = "";
因此,当您将其与文本 "reset"
进行比较时,结果为 false
。
相反,您可能应该像这样实现它:
...
string userReset = txtGuess.Text
...
if (userReset.Equals("reset"))
...
或者,根本不使用变量:
...
if (txtGuess.Text == "reset")
...
顺便说一句,我个人会在 else
的 int.TryParse
中使用它:
if (int.TryParse(txtGuess.Text,out guess))
{
...
}
else if (txtGuess.Text == "reset")
{
...
}
这是因为如果文本是数字,那么它永远不会是 "reset"
(反之亦然),这样可以节省不必要地检查 TextBox
的值。
进一步编辑案例
正如@TimSchmelter 在评论中指出的那样,忽略输入文本的大小写(即使比较不区分大小写)也可能有意义,以便用户可以输入 reset
、{{ 1}}、Reset
等
要实现这一点,请使用不区分大小写的比较:
ReSeT
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。