以下代码导致控制台关闭(退出代码 0,告诉我程序已完成)。奇怪的是:它甚至没有进入switch (choice)
声明。调试器向我显示该Console.ReadLine()
语句已到达,但不是switch(choice)
.
请注意:
- 输入数字(1 或 2)并按 Enter 后,控制台关闭。
- 我在 switch 语句上设置了断点,它没有到达这行代码。我使用调试器验证了这一点。它在我按下回车后立即关闭 cmd。这似乎是到达的最后一行代码。
- 我在我的程序的另一类中使用了这种菜单,没有任何问题。
- 我从 System.Threading.Timer 调用此方法 (PostTestMenu())
为什么即使还有代码要执行并且调试器清楚地表明它甚至没有到达后续代码,程序也会停止?
protected void PostTestMenu ()
{
string choice;
Console.WriteLine(" ");
Console.WriteLine(" ");
Console.WriteLine(" ");
Console.WriteLine("############## What next #############");
Console.WriteLine("Repeat 1");
Console.WriteLine("Next 2");
choice = Console.ReadLine();
switch (choice)
{
case "1":
Setup();
break;
case "2":
program.Hauptmenue();
break;
}
}