我正在开发一个项目,该项目通过在 Mac OS 上键入类似终端的命令来执行特定操作。问题是Console.ReadLine
和Console.ReadKey
方法之间不共享线程。
例如,我正在创建一个程序,当我在使用Console.ReadLine
.
我可以通过以下方式做到这一点:
ConsoleKeyInfo cki;
while (true)
{
cki = Console.ReadKey(true);
if (cki.Key == ConsoleKey.Escape)
break;
Console.Write(cki.KeyChar);
// do something
}
但是该方法的问题在于,当您在控制台上键入时,按 Backspace 键不会删除输入字符串的最后一个字符。
为了解决这个问题,我可以保存输入的字符串,按下退格键时初始化控制台屏幕,然后再次输出保存的字符串。但是,我想保存以前输入的字符串的记录,我不想初始化。
如果有一种方法可以清除已打印的字符串的一部分Console.Write
,或者如果在输入字符串时按下特定键时发生事件,则Console.ReadLine
可以轻松解决上述问题。