【问题标题】:Stop console window from closing [duplicate]停止关闭控制台窗口[重复]
【发布时间】:2017-03-29 18:14:11
【问题描述】:

我正在尝试在 C# 控制台中创建一个对话框...并尝试让它回答用户的问题:

“告诉我日期和时间”

或类似的东西。这是我的代码:

resp3 = Console.ReadLine();
if (resp3 == "tell me the curent date and time")
{
    Console.Write(string.Format("{0:HH:mm:ss tt}", DateTime.Now));
}

将答案写入控制台后,它就关闭了。

【问题讨论】:

  • 您的代码对我有用。有什么问题?
  • 控制台在执行完成后关闭,您需要一个阻塞调用来阻止它消失,例如Console.ReadLine();
  • 请记住:tell me the curent date and timeTell me the curent date and time 相等。
  • 在使用本网站时请提出问题。对于一个人来说,我会非常感激“为什么我的程序最后会关闭?”,或者“我如何在控制台应用程序执行完所有内容后保持打开状态?”,而不是“在它写出答案之后控制台,它只是关闭。”,这听起来像是随机的事实:“我喜欢菠萝。今天是 11 月 15 日。我写了一个控制台应用程序,它只是在最后关闭”。

标签: c# if-statement time


【解决方案1】:

保持基本结构,最后添加 Console.ReadLine()

   resp3 = Console.ReadLine();
   if (resp3 == "tell me the curent date and time")
   {
      Console.Write(string.Format("{0:HH:mm:ss tt}", DateTime.Now));
   }
   Console.ReadLine();

这确保程序在结束时暂停,无论输入是否正确。

【讨论】:

  • 是的..我认为在原始代码中是一个问题...我的意思是..当我在不同的项目中尝试此代码时它可以工作...如果我在原始代码中使用它崩溃......谢谢你;)
【解决方案2】:

您可以使代码更简洁、更通用:

var phrase = "...";
if(String.Compare(Console.ReadLine(), phrase, true) == 0)
     Console.WriteLine(DateTime.Now.ToString("0:HH:mm:ss tt");

Console.ReadLine();

比较会偏离区分大小写,因此变得不区分大小写。此外,当您使用ToString 时,您可以直接将格式设置到DateTime 的末尾。它具有与String.Format 相同的格式。正如 Sajeetharan 所指出的,最后还需要 Console.ReadLine

【讨论】:

    【解决方案3】:

    代码已经完成,要继续你需要添加这个:

    Console.ReadLine();
    

    【讨论】:

    • 是的逻辑:D我的问题是......“控制台没有显示日期,它在几秒钟后关闭,抱歉英语不好......:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-25
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多