【发布时间】:2021-09-08 11:14:54
【问题描述】:
我有一个小型 .NET 控制台程序,它要求提供 SQL 凭据(登录名、密码)。问题是,如果我在登录提示(下面的string userId = Console.ReadLine();)期间按Ctrl-C,程序会停止,但"password:" 提示会写入控制台。相关片段:
Console.Write("login: ");
string userId = Console.ReadLine();
Console.Write("password: ");
在登录提示期间 Ctrl-C 上的输出:
登录名:密码:
如何避免在使用 Ctrl-C 退出后执行Console.Write("password: ");?
更新 1: CancelKeyPress 事件处理程序没有帮助。至少对我来说,它适用于 Console.ReadKey,但不适用于 Console.ReadLine:仍然写入密码提示。
更新2:如果空检查块后有Write/WriteLine,它仍然在我的机器上执行(Win10,VS2019)。所以,问题实际上仍然存在。当前的解决方法 - ReadKey。
【问题讨论】:
-
@kraego 不。我添加了一条关于它的问题。
-
我在我的机器上运行了这段代码,当我按下 Ctrl-C 后进程立即退出。
标签: .net .net-core console-application