C# - Konsole.Readkey - warten auf spezifischen input
Ich habe ein kleines C# - console-app, die ich Schreibe.
Ich würde gerne in der app zu warten, für den Auftrag, den der Nutzer in Bezug auf entweder ein Y oder ein N-Tastendruck (wenn eine andere Taste gedrückt, wird die app ignoriert diese und wartet, bis entweder ein Y oder ein N und dann läuft der code abhängig von der Y oder N beantworten.
Ich kam mit dieser Idee,
while (true)
{
ConsoleKeyInfo result = Console.ReadKey();
if ((result.KeyChar == "Y") || (result.KeyChar == "y"))
{
Console.WriteLine("I'll now do stuff.");
break;
}
else if ((result.KeyChar == "N") || (result.KeyChar == "n"))
{
Console.WriteLine("I wont do anything");
break;
}
}
Leider aber VS sagt Ihr tut, wie das Ergebnis.Keychat == als Operanden dürfen nicht angewendet, um einen 'char' oder 'string'
Jede Hilfe bitte?
Vielen Dank im Voraus.
einziges Zitat, nicht doppelt ... (Ergebnis.KeyChar == 'Y') || (result.KeyChar == 'y')
InformationsquelleAutor tripbrock | 2011-10-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
KeyChar
ist einchar
während"Y"
ist einstring
.Du willst so etwas wie
KeyChar == 'Y'
statt.Eine alternative wäre dieser:
result.Key == ConsoleKey.Y
Das funktioniert vielleicht. Wäre ich besorgt, dass es akzeptieren würde nicht nur
Y
undShift+Y
, aber auchCtrl+Y
.Du hast Recht, habe es gerade getestet und es akzeptieren, Umschalt+Y (oder einer Kombination).
InformationsquelleAutor Gabe
Überprüfen Sie diese stattdessen
Und nach der Prüfung das Ergebnis
InformationsquelleAutor GregM
Was Ihr auf der Suche nach so etwas wie dieses
InformationsquelleAutor Corey
Werden Sie wahrscheinlich wollen, dass der Benutzer bestätigen Sie Ihre Antwort, indem Sie die EINGABETASTE drücken, so ReadLine ist am besten. Auch konvertieren Sie die Zeichenfolge response to upper case für Generika Vergleich überprüfen. Etwa so:
InformationsquelleAutor ComeIn