是否有一种方法来捕获ctrl+使用Readline()在单声道控制台?我使用的是Mono 2.10.2,例如,当我按ctrl-d时,什么也没发生。我不知道什么信号ReadLine()得到当我按下它
ReadLine()
读取输入控制台的行文本。
控制键没有任何文本表示,所以它显然没有被"捕获"。要捕获控制键,可以使用Console.ReadKey()
函数。
以下是Console.ReadKey()
文档页面中的示例。
ConsoleKeyInfo cki;
// Prevent example from ending if CTL+C is pressed.
Console.TreatControlCAsInput = true;
Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.");
Console.WriteLine("Press the Escape (Esc) key to quit: n");
do
{
cki = Console.ReadKey();
Console.Write(" --- You pressed ");
if((cki.Modifiers & ConsoleModifiers.Alt) != 0)
Console.Write("ALT+");
if((cki.Modifiers & ConsoleModifiers.Shift) != 0)
Console.Write("SHIFT+");
if((cki.Modifiers & ConsoleModifiers.Control) != 0)
Console.Write("CTL+");
Console.WriteLine(cki.Key.ToString());
} while (cki.Key != ConsoleKey.Escape);