You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#控制台应用:如何内联请求输入及检测任意按键

刚好在C#控制台开发里经常碰到这两个需求,我来给你详细讲讲:

内联请求用户输入

要实现提示文本和输入框在同一行的效果,核心是用Console.Write()代替Console.WriteLine()——前者输出后不会自动换行,光标会停在提示文本的末尾,用户输入就会直接跟在提示后面。

示例代码:

// 输出提示但不换行
Console.Write("What is your name: ");
// 读取用户输入,此时光标就在提示文本后
string userName = Console.ReadLine();
// 后续处理输入
Console.WriteLine($"Nice to meet you, {userName}!");

运行这段代码时,控制台会显示What is your name: ,光标紧跟在冒号后面,用户输入的内容就会内联显示在同一行,完美符合你的需求。

暂停程序直至用户按下任意键

Console.ReadLine()确实只响应回车键,要实现“按任意键继续”的效果,得用Console.ReadKey()方法:

基础用法(显示按下的按键)

Console.WriteLine("Press any key to exit...");
// 等待用户按下任意键,按下的键会显示在控制台
Console.ReadKey();

隐藏按下的按键

如果不想让用户按下的键显示在控制台,可以用重载方法,传入true参数表示不捕获显示字符:

Console.WriteLine("Press any key to continue...");
// 等待按键但不显示输入的字符
Console.ReadKey(true);

另外,Console.ReadKey()会返回一个ConsoleKeyInfo对象,如果你需要判断用户按下的具体按键(比如只允许按ESC退出),还可以对返回值做判断:

Console.WriteLine("Press ESC to exit...");
ConsoleKeyInfo keyInfo = Console.ReadKey(true);
if (keyInfo.Key == ConsoleKey.Escape)
{
    Environment.Exit(0);
}

内容的提问来源于stack exchange,提问作者Shane Powell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:45:01