使用文本框内的字符串调用方法
Call a method with a string inside a text box
我正在用 C# 制作一个简单的猜谜游戏,其中计算机生成一个介于 1-10 之间的数字,我同时获得了一个 clickEvent 和一个 KeyPressedEvent(按 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")
...
顺便说一句,我个人会在 int.TryParse
的 else
中使用它:
if (int.TryParse(txtGuess.Text, out guess))
{
...
}
else if (txtGuess.Text == "reset")
{
...
}
这是因为如果文本是一个数字,那么它永远不会是 "reset"
(反之亦然),这样可以避免不必要地检查 TextBox
的值。
关于案例的进一步编辑
正如@TimSchmelter 在评论中指出的那样,忽略输入文本的大小写(即使比较不区分大小写)也可能有意义,以便用户可以键入 reset
, Reset
、ReSeT
等
为此,使用不区分大小写的比较:
else if (txtGuess.Text.Equals("reset", StringComparison.OrdinalIgnoreCase))
我正在用 C# 制作一个简单的猜谜游戏,其中计算机生成一个介于 1-10 之间的数字,我同时获得了一个 clickEvent 和一个 KeyPressedEvent(按 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")
...
顺便说一句,我个人会在 int.TryParse
的 else
中使用它:
if (int.TryParse(txtGuess.Text, out guess))
{
...
}
else if (txtGuess.Text == "reset")
{
...
}
这是因为如果文本是一个数字,那么它永远不会是 "reset"
(反之亦然),这样可以避免不必要地检查 TextBox
的值。
关于案例的进一步编辑
正如@TimSchmelter 在评论中指出的那样,忽略输入文本的大小写(即使比较不区分大小写)也可能有意义,以便用户可以键入 reset
, Reset
、ReSeT
等
为此,使用不区分大小写的比较:
else if (txtGuess.Text.Equals("reset", StringComparison.OrdinalIgnoreCase))