在C#控制台应用程序中输入密码时用掩码显示,程序怎么写?

解决方案 »

  1.   


    static void Main(string[] args)
            {
                string password = string.Empty; 
                ConsoleKeyInfo info; 
                do
                {
                    info = Console.ReadKey(true);
                    if (info.Key != ConsoleKey.Enter && info.Key != ConsoleKey.Backspace && info.Key != ConsoleKey.Escape && info.Key != ConsoleKey.Tab && info.KeyChar != '\0')
                    {
                        password += info.KeyChar; 
                        Console.Write('*');
                    }
                } while (info.Key != ConsoleKey.Enter); 
                Console.WriteLine(); 
                Console.WriteLine(password);        }
      

  2.   

    static void Main(string[] args)
            {
                string password = string.Empty; 
                ConsoleKeyInfo info; 
                do
                {
                    info = Console.ReadKey(true);
                    if (info.Key != ConsoleKey.Enter && info.Key != ConsoleKey.Backspace && info.Key != ConsoleKey.Escape && info.Key != ConsoleKey.Tab && info.KeyChar != '\0')
                    {
                        password += info.KeyChar; 
                        Console.Write('*');
                    }
                   /// <summary>
                   else                  
                                break;               /// <summary>
                } while (info.Key != ConsoleKey.Enter); 
                Console.WriteLine(); 
                Console.WriteLine(password);        }
    上面朋友的代码,我再加了一个判断,在测试上面朋友那个源代码的时候,“敲一下回车再输入,控制台并没有什么变化,之后再输入密码的时候,密码变成明文的了”,如果不输入正确密码就不让进入下面操作,可以把 break 改为 return ~