Ich versuche ReadKey() zu verwenden, um ein Kennwortfeld zu erhalten, so dass es nicht in der Konsole für eine .net Core-App angezeigt wird, die ich auf Ubuntu ausgeführt werde.ReadKey funktioniert nicht in .net-Kern
Dieser Code ist:
while (true)
{
var key = System.Console.ReadKey(true);
if (key.Key == ConsoleKey.Enter)
break;
Io.RootPass += key.KeyChar;
}
Aber ich bekomme diese Ausnahme:
Ausnahme ist aufgetreten: CLR/System.InvalidOperationException Eine nicht behandelte Ausnahme des Typs 'System.InvalidOperationException' aufgetreten im System .Console.dll: 'Schlüssel können nicht gelesen werden, wenn eine Anwendung keine Konsole hat oder wenn die Konsoleneingabe umgeleitet wurde. Versuchen Sie Console.Read. '
ReadLine() funktioniert gut. Warum funktioniert ReadKey() nicht?
Edit:
Eigentlich Console.ReadLine() funktioniert nicht entweder es funktioniert einfach nicht eine Ausnahme werfen. Der Rückgabewert wird nicht zugewiesen, wenn ein Treffer getroffen wird, so dass das Programm klebt.
Ich vermute, das liegt daran, dass Linux-Terminal anders funktioniert. Gibt es eine andere Schnittstelle für Linux-Terminal, die funktioniert?
https://stackoverflow.com/questions/19939666/c-sharp-readkey-crashing-console-app-when-called-using-nul –
@EvanTrimboli mein Code ist der gleiche wie in der Antwort von der, die Sie mich mit – Guerrilla
verbinden Ich denke, Problem ist, weil ich im Ubuntu-Terminal – Guerrilla