2016-09-19 3 views
0

Ich mache ein Programm, in dem ich die Benutzereingabe benötigt, um unsichtbar zu sein, und ich lese, dass var key = System.Console.ReadKey(true); genau das tut. zu tun, was ich brauche, aber ich brauche eine Zeichenkette mit mehreren Zeichen, also was ich getan habe, istWie schreibe ich einen String mit readkey innerhalb einer Schleife?

string Choice1=null; 
User1Input: 
while (true) 
{ 
    var key = System.Console.ReadKey(true); 
    if (key.Key == ConsoleKey.Enter) 
    { 
     break; 
    } 
    Choice1 += key; 
} 

Was passiert ist, dass key einfach nichts liest, denn selbst wenn ich die Eingabetaste drücken, Die Schleife schließt nicht.

+2

Warum kann nicht die gesamte Zeile 'System.Console.ReadLine lesen()'? – Rahul

+0

Ich habe es gerade versucht, es ist rot unterstrichen. Außerdem habe ich auf dieser Website irgendwo gelesen, dass man Zeilen nicht unsichtbar machen kann, nur einzelne Tasten. –

Antwort

1

Ihre einzige Absicht ist es, das Zeichen zu verbergen, während der Benutzer Eingaben in die Konsole eingibt. In diesem Fall sind Sie in der richtigen Spur und Ihr gebuchter Code sieht gut aus, mit Ausnahme der letzten Zeile, die Choice1 += key; lautet. Es sollte

Choice1 += key.KeyChar; 

Ihr geschrieben Code mit Bitmodifikation sein

string choice1=null; //casing of variable names 
while (true) 
{ 
    var key = System.Console.ReadKey(true); 
    if (key.Key == ConsoleKey.Enter) 
     break; 

    choice1 += key.KeyChar; 
} 
+0

Das ist es, vielen Dank! –

Verwandte Themen