Console.ReadKey(); und Switch-Anweisung - mit Buchstaben
Ich versuche ein Programm in C#, die im Grunde die Funktionen auf der Grundlage der-Taste kann ein Benutzer drückt (ex. X = Beenden, D = Disconnect, etc;) durch verwenden der Konsole.ReadKey(); in c#
Das problem ist ich in ist wie den ReadKey-info in einer Switch-Anweisung.. Kann jemand bitte helfen? Der code ist unten.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Switch_Test
{
class Program
{
static void Main()
{
Console.WriteLine("Welcome. Please enter your command: ");
string chinput;
int input;
bool activated = false;
input = Console.ReadKey();
chinput = Convert.ToChar(input);
switch (chinput)
{
case 'x':
{
Console.WriteLine("You pressed x...");
break;
}
case 'y':
{
Console.WriteLine("You pressed y..");
break;
}
case 'd':
{
if (activated != true)
{
Console.WriteLine("Please activate first!");
break;
}
else
{
Console.WriteLine("Active..");
break;
}
}
case 'a':
{
if (activated != true)
{
activated = true;
Console.WriteLine("Activating..");
break;
}
else
{
activated = false;
Console.WriteLine("Deactivating.");
break;
}
}
default:
Console.WriteLine("Unknown Command.");
break;
}
}
}
}
Ich weiß, das ist wohl wirklich falsch, aber ich begann ursprünglich mit der Konsole.ReadLine(); , der einzige Unterschied ist, ich will es zu aktivieren, eine Funktion, die beim drücken einer einzigen Taste anstatt enter-Taste drücken oder in der Lage zu geben, in verschiedenen Tonarten. Vielen Dank im Voraus!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst
Convert.ToChar()
funktioniert nicht aufConsoleKeyInfo
Struktur, so dass ist, warum Sie Probleme haben, diese Konvertierung eine Ausnahme ausgelöst.Müssen Sie nicht konvertieren Sie Ihre Schlüssel, um Charakter, stattdessen kann man den Schalter auf
.Key
Eigenschaft, die eine aufzählbare, enthält jeder Schlüssel:Edit:
input.KeyChar
zu bekommen, was Sie versucht, das erste Zeichen, dann können Sie wechseln, wenn Sie wollen, aber es ist gehärteter zu wechseln, auf verschiedenen Tasten, wie Pfeile, etc..KeyChar
oder verwenden Sie.Key
mit.Modifiers
zu überprüfen, wenn Sie die shift-Taste gedrückt wurde, wenn der Benutzer der Brief geschriebenKönnen Sie einfach Eingabe, wie:
verwenden der Konsole.ReadKey() gibt einen Typ von einer struct ConsoleKeyInfo. so müssen Sie zu erhalten, die Rückgabe in eine variable von diesem Typ.
Wechseln Sie dann auf die Taste enumrator, das hat alle Zeichen.