C# 控制台按键事件

标签 c# console-application keyevent

我刚刚开始学习 C# 控制台事件。

有没有一种可能的方法,让 C# 应用程序只需按一个字母即可自动跳转到新命令。

我在下面有这个迷你代码。

我正在开发一个迷你文本库。

我刚刚使用了 Console.Read(); 所以用户输入字母 Y 然后他仍然需要按 Enter 键 我想要的是,如果用户按“y”或键盘上的任意键,则语句将转到 if 语句。

这可能吗?

        Console.Write("Press Y to start the game.");

        char theKey = (char) Console.Read();


        if (theKey == 'y' || theKey == 'Y')
        {
            Console.Clear();
            Console.Write("Hello");
            Console.ReadKey();
        }
        else
            Console.Write("Error");

最佳答案

您应该使用ReadKey方法(msdn):

Console.Write("Press Y to start the game.");

char theKey = Console.ReadKey().KeyChar;

if (theKey == 'y' || theKey == 'Y')
{
    Console.Clear();
    Console.Write("Hello");
    Console.ReadKey();
}
else
    Console.Write("Error");

ReadKey方法的返回值是ConsoleKey枚举,因此您可以在if条件中使用它:

Console.Write("Press Y to start the game.");

ConsoleKey consoleKey = Console.ReadKey().Key;

if (consoleKey == ConsoleKey.Y)
{
    Console.Clear();
    Console.Write("Hello");
    Console.ReadKey();
}
else
    Console.Write("Error");

关于C# 控制台按键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28655314/

相关文章:

c# - 如何从解决方案中的所有项目中卸载 *a* 包

c++ - 调用 Windows API 的 C++ 控制台程序中的内存泄漏

c++ - 计算和数据限制

java - KeyEvent 无法识别已按下 Shift 键

javascript - ReactJS 在指定的按键上显示模式弹出表单

c# - 这是否正确使用了Socket类的异步功能?

c# - Windows Phone 导航按钮与屏幕分辨率重叠

c# - 从 XAML View 生成图像

c# - 在 C# 控制台应用程序中访问 dbContext

java - 在android中将字符串转换为键码