2 回答
TA贡献1786条经验 获得超11个赞
bool debug = false;
public void Toggle()
{
ConsoleKeyInfo keyinfo = Console.ReadKey();
if (keyinfo.Key == ConsoleKey.F10)
{
debug = !debug;
if(debug)
{
//Your code here if debug = true
}
else
{
//Your code here if debug = false
}
}
else
{
//Your code here if key press other than F10
}
}
ConsoleKeyInfo:描述按下的控制台键,包括控制台键所代表的字符以及 SHIFT、ALT 和 CTRL 修饰键的状态。
尝试一次可能对你有帮助。
TA贡献1877条经验 获得超6个赞
这取决于您想要的确切行为。您可能最好滚动自己的Console.WriteLine.
以下切换debug并立即切换到其他模式,忽略任何部分输入的命令。
private static bool InterruptableReadLine(out string result)
{
var builder = new StringBuilder();
var info = Console.ReadKey(true);
while (info.Key != ConsoleKey.Enter && info.Key != ConsoleKey.F10)
{
Console.Write(info.KeyChar);
builder.Append(info.KeyChar);
info = Console.ReadKey(true);
}
Console.WriteLine();
result = builder.ToString();
return info.Key == ConsoleKey.F10;
}
// reading input, or just waiting for enter in your infinite loop
string command;
var interrupted = InterruptableReadLine(out command);
if (interrupted)
{
debug = !debug;
continue;
}
// do stuff with command if necessary
- 2 回答
- 0 关注
- 331 浏览
添加回答
举报