C# consolekeys字符串C的问题#

C# consolekeys字符串C的问题#,c#,string,console,char,C#,String,Console,Char,我有一个关于这段代码的问题,这段代码只是用来写我正在键入的内容 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(); Co

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

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。如果我尝试
打印b[0]
它仍在打印
dD
。这怎么可能?如何修复它?

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

要停止此过程,请将
true
传递到
ReadKey
,以防止显示

ConsoleInfo a = Console.ReadKey(true);

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

要停止此过程,请将
true
传递到
ReadKey
,以防止显示

ConsoleInfo a = Console.ReadKey(true);

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

要停止此过程,请将
true
传递到
ReadKey
,以防止显示

ConsoleInfo a = Console.ReadKey(true);

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

要停止此过程,请将
true
传递到
ReadKey
,以防止显示

ConsoleInfo a = Console.ReadKey(true);

它不是打印
dD
,而是打印
D
,这是
a.Key.ToString()的值。它将它放在
d
之后,因此在控制台中它看起来像
dD

它不是打印
dD
,而是打印
d
,这是
a.Key.ToString()的值。它将它放在
d
之后,因此在控制台中它看起来像
dD

它不是打印
dD
,而是打印
d
,这是
a.Key.ToString()的值。它将它放在
d
之后,因此在控制台中它看起来像
dD

它不是打印
dD
,而是打印
d
,这是
a.Key.ToString()的值。它将代码放在
d
之后,因此在控制台中,它看起来像
dD

那么我必须将代码放在控制台应用程序中并运行它,然后才能算出:)那么我必须将代码放在控制台应用程序中并运行它,然后才能算出:)嗯,我必须将代码放在控制台应用程序中并运行它:)嗯我必须将代码放入一个控制台应用程序中并运行它,然后才能找到答案:)