重音符/波浪号控制台键

Par*_*xis 0 .net c#

我目前正在制作一个游戏,我想对某个按键事件使用重音符 (`) 或波浪号 (~) 键。但是我无法找到这个特定字符的 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)

Tho*_*ler 5

Convert.ToChar("``")不是常量表达式。这是一个将在运行时评估的方法调用。因此const关键字在这里是不可能的。

您可以直接使用 char,而不是将字符串转换为 char:

const ConsoleKey tilde = (ConsoleKey)'`';
Run Code Online (Sandbox Code Playgroud)

但是,在这里我要说,简单地投射不是解决方案。这将返回NumPad0,这肯定不是您所期望的。

正确的关键是

ConsoleKey.Oem3
Run Code Online (Sandbox Code Playgroud)