Ich versuche, ein Programm in C # zu machen, das grundsätzlich auf der Basis des Schlüssels funktioniert, den ein Benutzer drückt (z. B. X = Beenden, D = Trennen usw.), indem er Console.ReadKey () verwendet; in c #
Das Problem, auf das ich gestoßen bin, ist die Verwendung der ReadKey-Informationen in einer Switch-Anweisung. Kann jemand bitte helfen? Der Code ist unten.
%Vor%Ich weiß, das ist wahrscheinlich wirklich falsch, aber ich habe ursprünglich mit Console.ReadLine () begonnen; Der einzige Unterschied besteht darin, dass ich eine Funktion aktivieren möchte, wenn Sie eine einzige Taste drücken, anstatt die Eingabetaste drücken oder verschiedene Tasten eingeben zu müssen. Vielen Dank im Voraus!
Erstens funktioniert Convert.ToChar()
nicht in ConsoleKeyInfo
structure, deshalb haben Sie Probleme, diese Konvertierung wird eine Ausnahme auslösen.
Sie müssen Ihren Schlüssel nicht in ein Zeichen konvertieren, stattdessen können Sie die Eigenschaft .Key
aktivieren, die ein Enumerable ist, das jeden Schlüssel enthält:
Bearbeiten:
input.KeyChar
verwenden, um zu erhalten, was Sie zuerst versucht haben - Zeichen, dann können Sie es einschalten, wenn Sie wollen, aber es ist schwierig, verschiedene Schlüssel wie Pfeile usw. einzuschalten. .KeyChar
verwenden oder .Key
mit .Modifiers
verwenden, um zu überprüfen, ob die Umschalttaste gedrückt wurde, als der Benutzer den Buchstaben mit Console.ReadKey () gibt einen Typ einer Struktur ConsoleKeyInfo zurück. Sie müssen also die Rückgabe in einer Variablen von diesem Typ erhalten. Schalten Sie dann den Schlüssel Enumerator ein, der alle Zeichen enthält.
%Vor%Tags und Links c# switch-statement