C# Tastatureingabe Abfragen wie geht das?


25.10.2021, 11:07

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

Woher ich das weiß:Berufserfahrung – 💻 Zertifizierter Sr. Cloud Engineer im IT-Consulting

Unknown1717 
Fragesteller
 25.10.2021, 11:22

danke, es geht einfach darum das ich gerne wissen wollte wie ich auf die Gedrückte taste Zugreifen kann.

0
Dultus, UserMod Light   25.10.2021, 11:26
@Unknown1717

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.

2
Palladin007  25.10.2021, 11:35
@Dultus, UserMod Light

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.

2
Unknown1717 
Fragesteller
 25.10.2021, 11:44
@Dultus, UserMod Light

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?

0
Dultus, UserMod Light   25.10.2021, 11:49
@Palladin007

Das stimmt natürlich. In der Regel konvertiere ich lieber bei Anfängern, weil ich darlegen kann, dass eine Methode das händelt.

1