Dieses Tutorial ist Teil einer dreitiligen Artikelserie zur Konsoleneingabe in C#:
- C# – Konsoleneingabe lesen
- C# – Konsoleneingabe validieren
- C# – Konsoleneingabe mit Ausnahmebehandlung
Im ersten Beispiel zur Eingabe von Werten über die Konsole wurde der Fall berücksichtigt, dass der Nutzer gar nichts eingibt. Er erhielt dann die Aufforderung, zur wiederholten Eingabe seines Namens.
In diesem Beispiel soll der Nutzer eine Ganzzahl eingeben, die mit 10 multipliziert wird. Außerdem soll der Umstand berücksichtigt werden, dass anstelle einer Zahl andere Zeichen eingegeben wurden. Für diesen Fall soll keine Berechnung durchgeführt werden. Dies lässt sich zum Beispiel mithilfe von int.TryParse() realisieren.
Den Anfang macht die Aufforderung zur Eingabe einer Zahl und das Lesen dieser Eingabe mit ReadLine():
Console.WriteLine("Gib eine Zahl ein: ");
var input = Console.ReadLine();Interessant ist in diesem Zusammenhang noch die Verwendung von var anstelle von string. Der Compiler versucht in diesem Fall den Datentyp selbst zu ermitteln.
Weiter geht es mit dem interessanten Teil dieses Beispiels:
int number;
bool parseNumber = int.TryParse(input, out number);Es wird versucht, den Eingabewert — mit int.TryParse() — zu parsen (von string zu int). Dies ist erforderlich, da ansonsten die sogleich vorzunehmende Multiplikation nicht funktionieren würde.
Schließlich folgt eine if-Verzweigung, die sicherstellt, dass die Berechnung nur für den Fall durchgeführt wird, dass die Typenumwandlung zu int erfolgreich war:
if (parseNumber)
{
int result = number * 10;
Console.WriteLine($"Ergebnis: {result}");
}
else
{
Console.WriteLine("Es wurde keine Zahl eingegeben!");
}Wie auch im ersten Beispiel, wird für die Konsolenausgabe auf String Interpolation zurückgegriffen. Der komplette Code sieht nun folgendermaßen aus:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Gib eine Zahl ein: ");
var input = Console.ReadLine();
int number;
bool parseNumber = int.TryParse(input, out number);
if (parseNumber)
{
int result = number * 10;
Console.WriteLine($"Ergebnis: {result}");
}
else
{
Console.WriteLine("Es wurde keine Zahl eingegeben!");
}
}
}Im dritten Teil geht es um die Implemetierung einer Ausnahmebehandlung.
Und was macht die KI?
Dieser Artikel entstand vor dem Siegeszug von ChatGPT & Co. Aber heutztage würde man wohl eine KI um die Generierung des Codes bitten. Werfen wir zum Schluß also einen Blick auf die Antwort von Googles Gemini 3:
using System;
public class Zahlenverarbeitung
{
public static void Main(string[] args)
{
Console.WriteLine("Bitte geben Sie eine ganze Zahl ein:");
// Liest die gesamte Zeile als String von der Konsole ein
string eingabe = Console.ReadLine();
try
{
// Versucht, den eingegebenen String in einen Integer umzuwandeln
int zahl = Convert.ToInt32(eingabe);
// Führt die Multiplikation durch
int ergebnis = zahl * 10;
// Gibt das Ergebnis aus
Console.WriteLine($"Die eingegebene Zahl multipliziert mit 10 ergibt: {ergebnis}");
}
catch (FormatException)
{
// Wird ausgelöst, wenn der String nicht in das Integer-Format konvertiert werden kann
Console.WriteLine("FEHLER: Die Eingabe war keine gültige ganze Zahl. Bitte geben Sie nur Ziffern ein.");
}
catch (OverflowException)
{
// Wird ausgelöst, wenn die Zahl zu groß oder zu klein für den int-Datentyp ist
Console.WriteLine("FEHLER: Die eingegebene Zahl ist zu groß oder zu klein für eine Standard-Integer-Variable (int).");
}
catch (Exception ex)
{
// Fängt alle anderen möglichen Fehler ab
Console.WriteLine($"Ein unerwarteter Fehler ist aufgetreten: {ex.Message}");
}
// Wartet auf einen Tastendruck, bevor das Konsolenfenster geschlossen wird
Console.WriteLine("\nDrücken Sie eine beliebige Taste, um das Programm zu beenden...");
Console.ReadKey();
}
}Wie ihr sehen könnt, enthält diese Lösung etwas mehr Code. Denn anstatt der Nutzung von int.TryParse() und einer einfachen if-else-Verzweigung, wird eine Ausnahmebehandlung verwendet, wobei unterschiedliche Ausnahmen erfaßt werden.
Auf die Frage, warum Convert.ToInt32() verwendet wird, erhalte ich übrigens die Antwort, dass TryParse häufiger genutz wird und dass bei der Validierung externer Eingaben TryParse bevorzugt werden sollte.
Weiterführende Links
Zuletzt aktualisiert am 11. Dezember 2025