A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天看到基础加强第一课,那个密码显示星号有个问题搞不懂。
  Console.WriteLine("请输入密码");
            string ck = "";
            while (true)
            {
                ConsoleKeyInfo key;
                key = Console.ReadKey(true);

                if (key.KeyChar == '\r')
                {
                    break;
                }
                if (key.KeyChar != '\b') //&& key.KeyChar != ' ')
                {
                    Console.Write("*");
                }
                else if (ck.Length == 0)
                {
                    continue;
                }
                else
                {
                    Console.Write("\b \b");
                    ck = ck.Substring(0, ck.Length - 1);
                    continue;
                }

                ck=key.KeyChar+ck;
            }
            Console.WriteLine();
            Console.WriteLine("密码为{0}", ck);
            Console.ReadKey();
疑问:假如一出来就按回车键,提示密码为空或者不显示输出密码该怎么做。。

评分

参与人数 2技术分 +2 收起 理由
滔哥 + 1
czwanglei + 1

查看全部评分

1 个回复

倒序浏览
加一个if判断:即判断输入回车时ck.Length是否小于1。将你上面的代码中的:
if (key.KeyChar == '\r')
                {
                    break;
                }
改为:
if ((key.KeyChar == '\r') && (ck.Length < 1))
                {
                    ck = "空";
                    break;
                }
                else if (key.KeyChar == '\r')
                {
                    break;
                }

如果要不显示密码就改成:
if ((key.KeyChar == '\r') && (ck.Length == 0))
                {
                    ck = "";
                }
                else if (key.KeyChar == '\r')
                {
                    break;
                }

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马