C# Tastatureingabe Abfragen wie geht das?
Das ist mein Code bis jetzt:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace irgendwas
{
class Program
{
static void Main(string[] args)
{
while (true)
{
ConsoleKeyInfo Key = Console.ReadKey();
Console.WriteLine(Key.Key);
if (Key == "Spacebar")
{
}
}
}
}
}
Also wie kann ich abfragen wenn ich auf der Tastatur z. B. "b" drücke das dann x, y passiert
1 Antwort
Moin,
z.B.
static void Main(string[] args)
{
if (Console.ReadKey().Key == ConsoleKey.B)
Console.WriteLine("B gedrückt!");
Console.ReadLine();
}
Kannst ConsoleKey.B durch beliebige Keys ersetzen!
Was hast du denn vor? Kann ich dir ein besseres Beispiel zeigen, welches du sehen wollen würdest?
LG
Ah, okay!
So hättest du es natürlich auch machen können.
ConsoleKeyInfo Key = Console.ReadKey();
if (Key == ConsoleKey.B)
Console.WriteLine("B gedrückt!");
"ConsoleKey" ist ein Enum. Heißt, dass die Werte wie "Space", "B", "A" usw. alle Zahlen sind. Alternativ hättest du es also auch so machen können:
if (Convert.ToInt32(Console.ReadKey().Key) == 66)
Console.WriteLine("B gedrückt!");
So als Funfact.
Enums lieber casten:
if ((int)Console.ReadKey().Key == 66)
Console.WriteLine("B gedrückt!");
Das Ergebnis ist das gleiche, doch die Runtime hat weniger zu tun und es ist mMn. auch besser lesbar.
kannst du mir noch mal bei etwasem Helfen?
Ich habe jetzt folgendes:
static void Main(string[] args)
{
var punkte = 0;
while (Console.ReadKey().Key == ConsoleKey.A)
{
Console.Clear();
punkte = punkte + 1;
Console.WriteLine(punkte);
Console.ReadLine();
}
}
und ich frage mich jetzt wenn die Konsole offen habe, gebe ich ein A aus das durch 1 "ersetzt" wird aber dann kann ich noch ein A eingeben was nichts macht, kann man das verhindern?
habs gelöst, man muss einfach das ReadLine rausnehmen 😅
Das ist der ReadLine am Schluss. Der wartet auf eine Tastatureingabe.
Also entfernst du am besten das ReadLine.
Das stimmt natürlich. In der Regel konvertiere ich lieber bei Anfängern, weil ich darlegen kann, dass eine Methode das händelt.
danke, es geht einfach darum das ich gerne wissen wollte wie ich auf die Gedrückte taste Zugreifen kann.