我目前正在制作一个游戏,我想对某个按键事件使用重音符 (`) 或波浪号 (~) 键。但是我无法找到这个特定字符的 ConsoleKey。(我指的是 Esc 键下的键)
如果有的话,叫什么名字?
如果它不存在,有没有办法制作我自己的?我尝试这样做来制作我自己的,但这会导致错误说明:Error 1 The expression being assigned to 'tilde' must be constant
const ConsoleKey tilde = (ConsoleKey) Convert.ToChar("`");
Run Code Online (Sandbox Code Playgroud)
目前我正在像这样调度我的事件:
// Fetch console keypress
ConsoleKey key = Console.ReadKey(true).Key;
// Dispatch events
switch (key) {
// Pause / resume
case ConsoleKey.Escape:
togglePause();
break;
// Debug mode
// This is where I would like to use the ` or ~ console key.
case ConsoleKey.Spacebar:
toggleDebug();
break;
}
Run Code Online (Sandbox Code Playgroud)
Convert.ToChar("``")不是常量表达式。这是一个将在运行时评估的方法调用。因此const关键字在这里是不可能的。
您可以直接使用 char,而不是将字符串转换为 char:
const ConsoleKey tilde = (ConsoleKey)'`';
Run Code Online (Sandbox Code Playgroud)
但是,在这里我要说,简单地投射不是解决方案。这将返回NumPad0,这肯定不是您所期望的。
正确的关键是
ConsoleKey.Oem3
Run Code Online (Sandbox Code Playgroud)