/* 本段代码使用 “天书我勒个去我还是相信中国开源的 V0.9” 协议发布
* 如果您需在发布(包含商业与非商业)的软件中使用本代码,只需告知作者四季天书并在软件的关于里加上天书的名字即可
* 因为我还是相信中国开源的。。。
*/
static string EnterPasswd()
{
while (true)
{
Console.Write("请输入密码>");
string key = string.Empty;
while (true)
{
ConsoleKeyInfo keyinfo = Console.ReadKey(true);
if (keyinfo.Key == ConsoleKey.Enter) //按下回车,结束
break;
else if (keyinfo.Key == ConsoleKey.Backspace && key.Length > 0) //如果是退格键并且字符没有删光
{
Console.Write("\b \b"); //输出一个退格(此时光标向左走了一位),然后输出一个空格取代最后一个星号,然后再往前走一位,也就是说其实后面有一个空格但是你看不见= =
key = key.Substring(0, key.Length - 1);
}
else if (!char.IsControl(keyinfo.KeyChar)) //过滤掉功能按键等
{
key += keyinfo.KeyChar.ToString();
Console.Write("*");
}
}
return key;
}
}
你们自己看吧,我觉得已经没什么 bug 了。。。
使用演示到这里(链接到 Github)看吧
天书 2014 年 9 月后的第一篇文章(本文)竟然是生病请假在家写的。。。

Comments | 3 条评论
你好,我在我的代码中使用了你的源码 https://github.com/RuioWolf/zfxk2/blob/master/xsxk/Program.cs
感谢你提供的代码,控制台用户登录的密码问题已经解决了