【发布时间】:2017-08-26 20:58:10
【问题描述】:
static int beverageSelection()
{
Console.WriteLine();
int brand;
string _val = "";
Console.Write("Enter number: ");
ConsoleKeyInfo key;
do
{
key = Console.ReadKey(true);
if (key.Key != ConsoleKey.Backspace)
{
double val = 0;
bool _x = double.TryParse(key.KeyChar.ToString(), out val);
if (_x)
{
_val += key.KeyChar;
Console.Write(key.KeyChar);
}
}
else
{
if (key.Key == ConsoleKey.Backspace && _val.Length > 0)
{
_val = _val.Substring(0, (_val.Length - 1));
Console.Write("\b \b");
}
}
}
while (key.Key != ConsoleKey.Enter);
brand = Convert.ToInt32(Console.ReadLine());
return brand;
}
上面的方法让我很头疼。我不知道如何告诉控制台应用程序它不应该让我输入任何字符甚至输入按钮,直到我在控制台中输入了一个数字。然后只有那时我才能按回车键。 无论如何,这个程序是我为了好玩而创建的自动售货机,为了清楚起见,我并不完全理解这段代码中的 do while 循环。
【问题讨论】:
-
变量名是德文的,很快就改成英文了
-
不要试图阻止错误输入...只需检查输入是否有效(如果无效,告诉用户并等待另一个输入)