c#控制台键字符串的问题
本文关键字:问题 字符串 控制台 | 更新日期: 2023-09-27 17:51:26
我对这段代码有一个问题,这段代码应该只是写我输入的内容。
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
。这怎么可能呢?我该怎么补救呢?
ReadKey
方法读取键并将其显示给用户。因此,当您点击"d"时,它显示"d",返回ConsoleKeyInfo
值,然后您的代码显示"d"。这将导致"dD"显示。
将true
传递给ReadKey
以阻止显示
ConsoleInfo a = Console.ReadKey(true);
不是打印dD
,而是打印D
,即a.Key.ToString()
的值。它把它放在d
之后,所以在控制台中它看起来像dD
。