use*_*040 15 c# console-application
我正在Console.ReadLine阅读用户的输入.但是,我想在键入时隐藏/排除控制台屏幕上输入的文本.例如,当用户写"a"时,它将"a"写入控制台,然后我将得到一个值为"a"的变量.但是,我不希望在控制台的输出上写入"a".
我怎样才能做到这一点?
dat*_*ore 33
这是一个简短的实现.这个想法是@ojblass
System.Console.Write("password: ");
string password = null;
while (true)
{
var key = System.Console.ReadKey(true);
if (key.Key == ConsoleKey.Enter)
break;
password += key.KeyChar;
}
Run Code Online (Sandbox Code Playgroud)
我通过了答案创建从代码这种方法了DataCore和建议m4tt1mus.我还添加了对退格键的支持.
private static string GetHiddenConsoleInput()
{
StringBuilder input = new StringBuilder();
while (true)
{
var key = Console.ReadKey(true);
if (key.Key == ConsoleKey.Enter) break;
if (key.Key == ConsoleKey.Backspace && input.Length > 0) input.Remove(input.Length - 1, 1);
else if (key.Key != ConsoleKey.Backspace) input.Append(key.KeyChar);
}
return input.ToString();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18214 次 |
| 最近记录: |