C# – Konsoleneingabe lesen

Dieses Tutorial ist Teil einer dreitiligen Artikelserie zur Konsoleneingabe in C#:

  1. C# – Konsoleneingabe lesen
  2. C# – Konsoleneingabe validieren
  3. C# – Konsoleneingabe mit Ausnahmebehandlung

Wie kann ein Nutzer Daten eingeben, damit sie von einem Algorithmus verarbeitet werden können? Dies ist eine Frage, die gerade Einsteiger in eine Programmiersprache beschäftigen dürfte. In diesem kurzen Blogbeitrag möchte ich dies anhand der Programmiersprache C# demonstrieren.

Console.ReadLine()

Für das Lesen der vom Benutzer in einer Konsole eingegebenen Daten, steht die Methode Console.ReadLine() zur Verfügung. Die Verarbeitung der eingegebenen Daten besteht hierbei lediglich in der Ausgabe mithilfe der Methode Console.WriteLine().

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Gib Deinen Namen ein: ");
        string? name = Console.ReadLine();
        Console.WriteLine("Dein Name lautet: " + name);
    }
}

Über die Zeile

string? name = Console.ReadLine();

wird die Eingabe der Variablen name zugewiesen. Die Ausgabe übernimmt dann die nächste Zeile:

Console.WriteLine("Dein Name lautet: " + name);

Nun besteht die Möglichkeit, dass der Nutzer gar nichts eingibt. Dies lässt sich mit einer if-Bedingung überprüfen, verbunden mit der wiederholten Aufforderung einen Namen einzugeben.

if (string.IsNullOrEmpty(name))
{
    Console.WriteLine("Fehlende Eingabe!");
    Console.WriteLine("Gib Deinen Namen ein: ");
    name = Console.ReadLine();
}

String Interpolation

Im obigen Beispiel wird über + der ausgegebene Text mit der Variablen name verknüpft. Seit C# 6 kann darüber hinaus String Interpolation unter Verwendung des $-Zeichens und geschweifter Klammern verwendet werden. Die Zeile würde dann wie folgt aussehen:

Console.WriteLine($"Dein Name lautet: {name}");

Der Vorteil liegt in der besseren Lesbarkeit des Codes. Deswegen sollte dieser Syntax der Vorzug gegeben werden.

Und so sieht schließlich der vollständige Code aus:

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Gib Deinen Namen ein: ");
        string? name = Console.ReadLine();

        if (string.IsNullOrEmpty(name))
        {
            Console.WriteLine("Fehlende Eingabe!");
            Console.WriteLine("Gib Deinen Namen ein: ");
            name = Console.ReadLine();
        }

        Console.WriteLine($"Dein Name lautet: {name}");
    }
}

Im zweiten Teil geht es um die Validierung eingegebener Werte.

Weiterführende Links