【问题标题】:Problems with the consolekeys string C#控制台键字符串 C# 的问题
【发布时间】:2014-03-21 17:36:03
【问题描述】:

我有一个关于这段代码的问题,它只是用来写我正在输入的内容。

ConsoleKeyInfo a = Console.ReadKey();
if (a.Key == ConsoleKey.Spacebar)
{
     Console.Write(" ");
}
else if (a.Key == ConsoleKey.Enter) 
{
     Console.WriteLine("");
}
else
{
     string b = a.Key.ToString();
     Console.Write(b);
}

如果我点击 d 例如它会打印: dD

但是如果我检查b.Length 它等于1。如果我尝试print b[0] 它仍然打印dD。这怎么可能?我该如何解决?

【问题讨论】:

    标签: c# string console char


    【解决方案1】:

    ReadKey 方法读取密钥并将其显示给用户。因此,当您点击“d”时,它会显示“d”,返回 ConsoleKeyInfo 值,然后您的代码会显示“D”。这将导致“dD”显示。

    要阻止此通过trueReadKey 以防止显示

    ConsoleInfo a = Console.ReadKey(true);
    

    【讨论】:

      【解决方案2】:

      不是打印dD,而是打印D,这是a.Key.ToString()的值。它紧跟在d 之后,所以在控制台中它看起来像dD

      【讨论】:

      • 好吧,我必须将代码放在控制台应用程序中并运行它,然后才能弄清楚:)
      猜你喜欢
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 2014-04-23
      • 2018-07-16
      • 1970-01-01
      相关资源
      最近更新 更多