【发布时间】:2014-06-01 16:28:01
【问题描述】:
这里有一个简单的例子来说明问题:
class Test
{
static void PrintName()
{
Console.Out.Write("Enter your name: ");
string name = Console.In.ReadLine();
Console.WriteLine(name);
Console.Out.Write("\nEnter R to restart: ");
char r = Convert.ToChar(Console.In.Read());
if (r.ToString().Equals("r", StringComparison.OrdinalIgnoreCase))
PrintName();
else
Environment.Exit(0);
}
static void Main(string[] args)
{
PrintName();
}
}
基本上,PrintName 要求重新启动自身。在第一次运行时,它接受用户输入并正常显示名称。当要求重复该过程时,它只会显示提示并询问您是否要重新启动。它跳过等待输入或显示输出。
更新:输出是:
Enter your name: Naven
Naven
Enter R to restart: r
Enter your name:
Enter R to restart: r
Enter your name:
Enter R to restart:
【问题讨论】:
-
问题出在 Console.Read() 函数上。有关解决方案,请参阅 [this related question][1]。 [1]:stackoverflow.com/questions/6048467/…
-
@Crono 查看我跑步时发生的情况的更新。
标签: c# .net recursion console stdin