如何使用方法中的可选参数检测控制台应用程序中是否按下了非方向键?

问题描述 投票:0回答:1

我的任务是向我正在开发的控制台应用程序中的方法添加一个可选参数,该方法可以检测在我的应用程序运行时是否按下了除电脑数字键盘上的箭头键之外的任何其他键。我已经尝试了几个小时在网络上寻找此问题的解决方案,但到目前为止却一无所获。我尝试修改的代码如下:

void Move()
{
    int lastX = playerX;
    int lastY = playerY;

        switch (Console.ReadKey(true).Key)
        {
        case ConsoleKey.UpArrow:
            playerY--;
            break;
        case ConsoleKey.DownArrow:
            playerY++;
            break;
        case ConsoleKey.LeftArrow:
            playerX--;
            break;
        case ConsoleKey.RightArrow:
            playerX++;
            break;
        case ConsoleKey.Escape:
            shouldExit = true;
            break;
    }

我需要向上面的 Move() 方法添加一个可选参数,然后在我的应用程序中的其他位置调用此方法,以便当按下电脑小键盘上除箭头键之外的任何键时,我的应用程序将停止运行。抱歉,这句话太长了。任何提示/建议表示赞赏。

到目前为止,我所做的只是关于如何编写一个可选参数的网络研究,该参数可以检测正在运行的控制台应用程序中的非定向按键输入。我还没有找到任何答案。

c# input console detect
1个回答
0
投票

看看这个

ConsoleKey key;

做 { while (!Console.KeyAvailable) { // 做一些事情,但不要在这里读取 key }

// Key is available - read it
key = Console.ReadKey(true).Key;

if (key == ConsoleKey.NumPad1)
{
    Console.WriteLine(ConsoleKey.NumPad1.ToString());
}
else if (key == ConsoleKey.NumPad2)
{
    Console.WriteLine(ConsoleKey.NumPad1.ToString());
}

} while (key != ConsoleKey.Escape);

© www.soinside.com 2019 - 2024. All rights reserved.